Avatar ·

¿Cuál es la diferencia entre HTTP_HOST y SERVER_NAME en PHP? Uso correcto

¡Hola a todos! Soy nuevo en PHP y estoy tratando de entender las variables del servidor. A menudo veo en el código de otros desarrolladores el uso de `$_SERVER['HTTP_HOST']` y `$_SERVER['SERVER_NAME']`. A primera vista, ambos devuelven el nombre del host, pero he notado que a veces dan valores diferentes. Por ejemplo, tengo un script simple: ```php '; echo 'SERVER_NAME: ' . $_SERVER['SERVER_NAME'] . '
'; ?> ``` En el servidor local (OpenServer) ambos muestran `localhost`. Pero cuando subí el sitio a un hosting, noté que al acceder a través de la dirección IP, `HTTP_HOST` muestra la IP, mientras que `SERVER_NAME` muestra el nombre de dominio. Además, he oído que `HTTP_HOST` puede ser falsificado a través de los headers de la solicitud HTTP, lo que crea una vulnerabilidad. Por favor, indíquenme: 1. ¿Cuál es la diferencia fundamental entre estas variables? 2. ¿Cuál es más seguro usar para redirecciones, generación de enlaces y verificación de dominio? 3. ¿Hay casos en los que puedan diferir drásticamente?