Avatar ·

Qual é a diferença entre HTTP_HOST e SERVER_NAME em PHP? Uso correto

Olá a todos! Sou novo em PHP e estou tentando entender as variáveis de servidor. Frequentemente vejo no código de outros desenvolvedores o uso de `$_SERVER['HTTP_HOST']` e `$_SERVER['SERVER_NAME']`. À primeira vista, ambos retornam o nome do host, mas notei que às vezes eles exibem valores diferentes. Por exemplo, tenho um script simples: ```php '; echo 'SERVER_NAME: ' . $_SERVER['SERVER_NAME'] . '
'; ?> ``` No servidor local (OpenServer), ambos mostram `localhost`. Mas quando enviei o site para a hospedagem, notei que ao acessar via endereço IP, `HTTP_HOST` mostra o IP, enquanto `SERVER_NAME` mostra o nome de domínio. Além disso, ouvi dizer que `HTTP_HOST` pode ser falsificado através de cabeçalhos HTTP request, o que cria uma vulnerabilidade. Por favor, me ajudem: 1. Qual é a diferença fundamental entre essas variáveis? 2. Qual delas é mais segura para usar em redirecionamentos, geração de links e verificação de domínio? 3. Existem casos em que elas podem diferir drasticamente?