received read print obtener headers capturar all php http http-headers

read - php print headers received



¿Cuándo podría el encabezado del host HTTP ser indefinido? (2)

Los rastreadores (p. Ej. Google), raspadores o incluso scripts perfectamente legales que interactúan con su API pueden omitir accidental o inconscientemente el encabezado del host.

Agregué esta respuesta porque esta pregunta surgió en google cuando busqué lo mismo.

De acuerdo con RFC 2616 , que define HTTP / 1.1, el encabezado Host: es obligatorio.

Un cliente DEBE incluir un campo de encabezado de host en todos los mensajes de solicitud HTTP / 1.1.

Pero el manual de PHP implica que podría estar vacío:

''HTTP_HOST'': contenido del host: encabezado de la solicitud actual, si hay uno.

¿En qué situaciones podría este encabezado, y por lo tanto $_SERVER[''HTTP_HOST''] , estar vacío? ¿Podría mi aplicación depender de que esté allí?


Puede estar vacío en HTTP 1.0. Si no se especifica ningún encabezado de host, el alojamiento virtual no funcionará en absoluto, por lo que se usará el vhost predeterminado en su servidor web.

Acabo de probar esto yo mismo; en PHP bajo Nginx, la variable $_SERVER[''HTTP_HOST''] se configuró con el nombre del host virtual, que es _ en mi caso. Pero eso también depende de su configuración de fastcgi_params en Nginx.

En alojamiento compartido esto no es importante ya que el vhost predeterminado se configurará en una página de información de la empresa de alojamiento, por lo que su script no se ejecutará. Sin embargo, podría ser algo bueno a tener en cuenta para su propio servidor.