Los campos de encabezado HTTP son componentes de la sección de encabezado de los mensajes de solicitud y respuesta en el Protocolo de transferencia de hipertexto (HTTP). Definen los parámetros operativos de una transacción HTTP.
Formato general
Los campos de encabezado se transmiten después de la línea de solicitud (en el caso de un mensaje HTTP de solicitud) o la línea de respuesta (en el caso de un mensaje HTTP de respuesta), que es la primera línea de un mensaje. Los campos de encabezado son pares clave-valor separados por dos puntos en formato de cadena de texto sin cifrar , terminados por una secuencia de caracteres de retorno de carro (CR) y salto de línea (LF). El final de la sección de encabezado se indica mediante una línea de campo vacía, lo que da como resultado la transmisión de dos pares CR-LF consecutivos. En el pasado, las líneas largas se podían doblar en varias líneas; las líneas de continuación se indican mediante la presencia de un espacio (SP) o tabulación horizontal (HT) como primer carácter en la línea siguiente. Este plegado ahora está en desuso. [1]
Nombres de campo
El Grupo de trabajo de ingeniería de Internet (IETF) estandariza un conjunto básico de campos en las RFC 7230, 7231, 7232, 7233, 7234 y 7235. La IANA mantiene el registro permanente de campos de encabezado y el repositorio de registros provisionales . Cada aplicación puede definir nombres de campo adicionales y valores permitidos.
Los nombres de los campos de encabezado no distinguen entre mayúsculas y minúsculas. [2] Esto contrasta con los nombres de los métodos HTTP (GET, POST, etc.), que distinguen entre mayúsculas y minúsculas. [3] [4]
HTTP / 2 establece algunas restricciones en campos de encabezado específicos (ver más abajo).
Los campos de encabezado no estándar se marcaban convencionalmente con el prefijo del nombre del campo, X-
pero esta convención quedó obsoleta en junio de 2012 debido a los inconvenientes que causaba cuando los campos no estándar se convertían en estándar. [5] En Downgraded-
marzo de 2013 se levantó una restricción anterior sobre el uso de . [6]
Valores de campo
Algunos campos pueden contener comentarios (es decir, en los campos User-Agent, Server, Via), que el software puede ignorar. [7]
Muchos valores de campo pueden contener un par clave-valor de calidad ( q ) separados por un signo igual , que especifica un peso para usar en la negociación de contenido . [8] Por ejemplo, un navegador puede indicar que acepta información en alemán o inglés, prefiriendo el alemán al establecer el valor q en un valor de
superior al de en
, de la siguiente manera:
Accept-Language: de; q=1.0, en; q=0.5
Límites de tamaño
El estándar no impone límites al tamaño de cada nombre o valor de campo de encabezado, ni al número de campos. Sin embargo, la mayoría de los servidores, clientes y software proxy imponen algunos límites por razones prácticas y de seguridad. Por ejemplo, el servidor Apache 2.3 limita de forma predeterminada el tamaño de cada campo a 8.190 bytes, y puede haber como máximo 100 campos de encabezado en una sola solicitud. [9]
Campos de solicitud
Campos de solicitud estándar
Nombre | Descripción | Ejemplo | Estado | Estándar |
---|---|---|---|---|
APUNTAR | Manipulaciones de instancia aceptables para la solicitud. [10] | A-IM: feed | Permanente | RFC 3229 |
Aceptar | Tipos de medios que son aceptables para la respuesta. Consulte Negociación de contenido . | Accept: text/html | Permanente | RFC 2616 , 7231 |
Aceptar-juego de caracteres | Conjuntos de caracteres aceptables. | Accept-Charset: utf-8 | Permanente | RFC 2616 |
Aceptar fecha y hora | Versión aceptable en el tiempo. | Accept-Datetime: Thu, 31 May 2007 20:35:00 GMT | Provisional | RFC 7089 |
Aceptar codificación | Lista de codificaciones aceptables. Consulte la compresión HTTP . | Accept-Encoding: gzip, deflate | Permanente | RFC 2616 , 7231 |
Aceptar-idioma | Lista de lenguajes humanos aceptables para responder. Consulte Negociación de contenido . | Accept-Language: en-US | Permanente | RFC 2616 , 7231 |
Método de solicitud de control de acceso , encabezados de solicitud de control de acceso [11] | Inicia una solicitud para compartir recursos de origen cruzado con Origin (a continuación). | Access-Control-Request-Method: GET | Permanente: estándar | |
Autorización | Credenciales de autenticación para autenticación HTTP . | Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== | Permanente | |
Control de caché | Se usa para especificar directivas que deben ser obedecidas por todos los mecanismos de almacenamiento en caché a lo largo de la cadena de solicitud-respuesta. | Cache-Control: no-cache | Permanente | |
Conexión | Opciones de control para la conexión actual y lista de campos de solicitud salto a salto. [12] No debe utilizarse con HTTP / 2. [13] | Connection: keep-alive
| Permanente | |
Codificación de contenido | El tipo de codificación utilizada en los datos. Consulte la compresión HTTP . | Content-Encoding: gzip | Permanente | |
Largancia de contenido | La longitud del cuerpo de la solicitud en octetos ( bytes de 8 bits). | Content-Length: 348 | Permanente | |
Contenido-MD5 | Una suma MD5 binaria codificada en Base64 del contenido del cuerpo de la solicitud. | Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ== | Obsoleto [14] | |
Tipo de contenido | El tipo de medio del cuerpo de la solicitud (utilizado con solicitudes POST y PUT). | Content-Type: application/x-www-form-urlencoded | Permanente | |
Galleta | Una cookie HTTP enviada previamente por el servidor con Set-Cookie (abajo). | Cookie: $Version=1; Skin=new; | Permanente: estándar | |
Fecha | La fecha y hora en las que se originó el mensaje (en formato "HTTP-date" según lo definido por RFC 7231 Date / Time Formats ). | Date: Tue, 15 Nov 1994 08:12:31 GMT | Permanente | |
Suponer | Indica que el cliente requiere determinados comportamientos del servidor. | Expect: 100-continue | Permanente | |
Reenviado | Revelar información original de un cliente que se conecta a un servidor web a través de un proxy HTTP. [15] | Forwarded: for=192.0.2.60;proto=http;by=203.0.113.43 Forwarded: for=192.0.2.43, for=198.51.100.17 | Permanente | |
De | La dirección de correo electrónico del usuario que realiza la solicitud. | From: [email protected] | Permanente | |
Anfitrión | El nombre de dominio del servidor (para alojamiento virtual ) y el número de puerto TCP en el que escucha el servidor. El número de puerto puede omitirse si el puerto es el puerto estándar para el servicio solicitado. Obligatorio desde HTTP / 1.1. [16] Si la solicitud se genera directamente en HTTP / 2, no debe utilizarse. [17] | Host: en.wikipedia.org:8080
| Permanente | |
Configuración de HTTP2 | Una solicitud que se actualice de HTTP / 1.1 a HTTP / 2 DEBE incluir exactamente un HTTP2-Setting campo de encabezado. El HTTP2-Settings campo de encabezado es un campo de encabezado específico de la conexión que incluye parámetros que gobiernan la conexión HTTP / 2, proporcionado antes de que el servidor acepte la solicitud de actualización. [18] [19] | HTTP2-Settings: token64 | Permanente: estándar | |
If-Match | Solo realice la acción si la entidad proporcionada por el cliente coincide con la misma entidad en el servidor. Esto es principalmente para métodos como PUT que solo actualizan un recurso si no se ha modificado desde la última vez que el usuario lo actualizó. | If-Match: "737060cd8c284d8af7ad3082f209582d" | Permanente | |
Si-modificado-desde | Permite que se devuelva un 304 No modificado si el contenido no se modifica. | If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT | Permanente | |
Si-ninguna-coincidencia | Permite que se devuelva un 304 Not Modified si el contenido no se modifica, consulte HTTP ETag . | If-None-Match: "737060cd8c284d8af7ad3082f209582d" | Permanente | |
If-Range | Si la entidad no ha cambiado, envíeme la (s) parte (s) que me faltan; de lo contrario, envíeme la nueva entidad completa. | If-Range: "737060cd8c284d8af7ad3082f209582d" | Permanente | |
If-Unmodified-Since | Solo envía la respuesta si la entidad no ha sido modificada desde un tiempo específico. | If-Unmodified-Since: Sat, 29 Oct 1994 19:43:31 GMT | Permanente | |
Max-Forwards | Limite el número de veces que el mensaje se puede reenviar a través de servidores proxy o puertas de enlace. | Max-Forwards: 10 | Permanente | |
Origen [11] | Inicia una solicitud para compartir recursos de origen cruzado (solicita al servidor los campos de respuesta Access-Control- * ). | Origin: http://www.example-social-network.com | Permanente: estándar | |
Pragma | Campos específicos de implementación que pueden tener varios efectos en cualquier parte de la cadena de solicitud-respuesta. | Pragma: no-cache | Permanente | |
Preferir | Permite al cliente solicitar que un servidor emplee ciertos comportamientos mientras procesa una solicitud. | Prefer: return=representation | Permanente | RFC 7240 |
Autorización de proxy | Credenciales de autorización para conectarse a un proxy. | Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== | Permanente | |
Distancia | Solicite solo una parte de una entidad. Los bytes se numeran desde 0. Consulte Servicio de bytes . | Range: bytes=500-999 | Permanente | |
Referer [ sic ] | Esta es la dirección de la página web anterior desde la que se siguió un enlace a la página solicitada actualmente. (La palabra "referente" se ha escrito mal en el RFC, así como en la mayoría de las implementaciones, hasta el punto de que se ha convertido en un uso estándar y se considera una terminología correcta). | Referer: http://en.wikipedia.org/wiki/Main_Page | Permanente | |
TE | Las codificaciones de transferencia que el agente de usuario está dispuesto a aceptar: se pueden usar los mismos valores que para el campo de encabezado de respuesta Transfer-Encoding, más el valor "trailers" (relacionado con el método de transferencia " fragmentado ") para notificar al servidor que espera recibir campos adicionales en el tráiler después del último fragmento de tamaño cero. Solo | TE: trailers, deflate | Permanente | |
Remolque | El valor del campo general Trailer indica que el conjunto dado de campos de encabezado está presente en el final de un mensaje codificado con codificación de transferencia fragmentada . | Trailer: Max-Forwards | Permanente | |
Codificación de transferencia | La forma de codificación utilizada para transferir de forma segura la entidad al usuario. Los métodos actualmente definidos son: fragmentado , comprimir, desinflar, gzip, identidad. No debe utilizarse con HTTP / 2. [13] | Transfer-Encoding: chunked | Permanente | |
Agente de usuario | La cadena de agente de usuario del agente de usuario. | User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/12.0 | Permanente | |
Potenciar | Pídale al servidor que actualice a otro protocolo. No se debe utilizar en HTTP / 2. [13] | Upgrade: h2c, HTTPS/1.3, IRC/6.9, RTA/x11, websocket | Permanente | |
Vía | Informa al servidor de los proxies a través del cual se envió la solicitud. | Via: 1.0 fred, 1.1 example.com (Apache/1.1) | Permanente | |
Advertencia | Una advertencia general sobre posibles problemas con el cuerpo de la entidad. | Warning: 199 Miscellaneous warning | Permanente |
Campos de solicitud no estándar comunes
Nombre del campo | Descripción | Ejemplo |
---|---|---|
Solicitudes de actualización inseguras [20] | Le dice a un servidor que (presumiblemente en medio de una migración HTTP -> HTTPS) aloja contenido mixto que el cliente preferiría redireccionar a HTTPS y que puede manejar Content-Security-Policy: upgrade-insecure-requests No debe usarse con HTTP / 2 [13] | Upgrade-Insecure-Requests: 1 |
X-Solicitado-Con | Se utiliza principalmente para identificar solicitudes Ajax (la mayoría de los marcos de JavaScript envían este campo con el valor de XMLHttpRequest ); también identifica las aplicaciones de Android mediante WebView [21] | X-Requested-With: XMLHttpRequest |
DNT [22] | Solicita una aplicación web para deshabilitar el seguimiento de un usuario. Esta es la versión de Mozilla del campo de encabezado X-Do-Not-Track (desde Firefox 4.0 Beta 11). Safari e IE9 también son compatibles con este campo. [23] El 7 de marzo de 2011, se presentó un borrador de propuesta a la IETF. [24] El Grupo de trabajo de protección de seguimiento del W3C está produciendo una especificación. [25] | DNT: 1 (No rastrear habilitado)
|
X-Reenviado-para [26] | Un estándar de facto para identificar la dirección IP de origen de un cliente que se conecta a un servidor web a través de un proxy HTTP o un equilibrador de carga. Reemplazado por encabezado reenviado . | X-Forwarded-For: client1, proxy1, proxy2
|
Host reenviado X [27] | Un estándar de facto para identificar el host original solicitado por el cliente en el Host encabezado de la solicitud HTTP, ya que el nombre del host y / o el puerto del proxy inverso (balanceador de carga) pueden diferir del servidor de origen que maneja la solicitud. Reemplazado por encabezado reenviado . | X-Forwarded-Host: en.wikipedia.org:8080
|
Proto reenviado X [28] | Un estándar de facto para identificar el protocolo de origen de una solicitud HTTP, ya que un proxy inverso (o un equilibrador de carga) puede comunicarse con un servidor web utilizando HTTP incluso si la solicitud al proxy inverso es HTTPS. Los clientes de Google que hablan con los servidores de Google utilizan una forma alternativa del encabezado (X-ProxyUser-Ip). Reemplazado por encabezado reenviado . | X-Forwarded-Proto: https |
Https de front-end [29] | Campo de encabezado no estándar utilizado por aplicaciones de Microsoft y balanceadores de carga | Front-End-Https: on |
X-Http-Method-Override [30] | Solicita a una aplicación web que anule el método especificado en la solicitud (normalmente POST) con el método proporcionado en el campo de encabezado (normalmente PUT o DELETE). Esto se puede usar cuando un agente de usuario o firewall impide que los métodos PUT o DELETE se envíen directamente (tenga en cuenta que esto es un error en el componente de software, que debe corregirse, o una configuración intencional, en cuyo caso puede ser omitido hacer lo incorrecto). | X-HTTP-Method-Override: DELETE |
X-ATT-DeviceId [31] | Permite un análisis más fácil del MakeModel / Firmware que generalmente se encuentra en la cadena de usuario-agente de los dispositivos de AT&T | X-Att-Deviceid: GT-P7320/P7320XXLPG |
Perfil X-Wap [32] | Vínculos a un archivo XML en Internet con una descripción completa y detalles sobre el dispositivo que se está conectando actualmente. En el ejemplo de la derecha hay un archivo XML para un Samsung Galaxy S2 de AT&T. | x-wap-profile: http://wap.samsungmobile.com/uaprof/SGH-I777.xml |
Conexión proxy [33] | Implementado como un malentendido de las especificaciones HTTP. Común debido a errores en las implementaciones de las primeras versiones de HTTP. Tiene exactamente la misma funcionalidad que el campo Conexión estándar. No debe utilizarse con HTTP / 2. [13] | Proxy-Connection: keep-alive |
X-UIDH [34] [35] [36] | Inserción profunda de paquetes en el lado del servidor de una identificación única que identifica a los clientes de Verizon Wireless ; también conocido como "perma-cookie" o "supercookie" | X-UIDH: ... |
X-Csrf-Token [37] | Se utiliza para evitar la falsificación de solicitudes entre sitios . Los nombres de encabezados alternativos son: X-CSRFToken [38] y X-XSRF-TOKEN [39] | X-Csrf-Token: i8XNjC4b8KVok4uw5RftR38Wgp2BFwql |
X-Request-ID, [40] [41] ID de correlación-X [42] [43] | Correlaciona las solicitudes HTTP entre un cliente y un servidor. | X-Request-ID: f058ebd6-02f7-4d3f-942e-904344e8cde5 |
Guardar datos [44] | El encabezado de solicitud de sugerencia del cliente Save-Data disponible en los navegadores Chrome, Opera y Yandex permite a los desarrolladores entregar aplicaciones más ligeras y rápidas a los usuarios que optan por el modo de ahorro de datos en su navegador. | Save-Data: on |
Campos de respuesta
Campos de respuesta estándar
Nombre del campo | Descripción | Ejemplo | Estado | Estándar |
---|---|---|---|---|
Aceptar-CH | Solicita sugerencias de cliente HTTP | Accept-CH: UA, Platform | Experimental | RFC 8942 |
Access-Control-Allow-Origin, Access-Control-Allow-Credentials, Access-Control-Expose-Headers, Access-Control-Max-Age, Access-Control-Allow-Methods, Access-Control-Allow-Headers [11] | Especificar qué sitios web pueden participar en el intercambio de recursos de origen cruzado | Access-Control-Allow-Origin: * | Permanente: estándar | |
Aceptar parche [45] | Especifica qué formatos de documento de parche admite este servidor | Accept-Patch: text/example;charset=utf-8 | Permanente | |
Aceptar rangos | Qué tipos de rango de contenido parcial admite este servidor a través del servicio de bytes | Accept-Ranges: bytes | Permanente | |
Edad | La antigüedad del objeto en una caché de proxy en segundos | Age: 12 | Permanente | |
Permitir | Métodos válidos para un recurso especificado. Para ser utilizado para un método 405 no permitido | Allow: GET, HEAD | Permanente | |
Alt-Svc [46] | Un servidor utiliza el encabezado "Alt-Svc" (que significa Servicios alternativos) para indicar que también se puede acceder a sus recursos en una ubicación de red diferente (host o puerto) o mediante un protocolo diferente. Cuando se usa HTTP / 2, los servidores deben enviar una trama ALTSVC. [47] | Alt-Svc: http/1.1="http2.example.com:8001"; ma=7200 | Permanente | |
Control de caché | Dice a todos los mecanismos de almacenamiento en caché del servidor al cliente si pueden almacenar en caché este objeto. Se mide en segundos | Cache-Control: max-age=3600 | Permanente | |
Conexión | Opciones de control para la conexión actual y lista de campos de respuesta salto a salto. [12] No debe utilizarse con HTTP / 2. [13] | Connection: close | Permanente | |
Disposición de contenido [48] | Una oportunidad para abrir un cuadro de diálogo "Descarga de archivos" para un tipo MIME conocido con formato binario o sugerir un nombre de archivo para contenido dinámico. Las citas son necesarias con caracteres especiales. | Content-Disposition: attachment; filename="fname.ext" | Permanente | |
Codificación de contenido | El tipo de codificación utilizada en los datos. Consulte la compresión HTTP . | Content-Encoding: gzip | Permanente | |
Contenido-Idioma | El idioma o los idiomas naturales de la audiencia destinataria del contenido adjunto [49] | Content-Language: da | Permanente | |
Largancia de contenido | La longitud del cuerpo de la respuesta en octetos ( bytes de 8 bits) | Content-Length: 348 | Permanente | |
Ubicación del contenido | Una ubicación alternativa para los datos devueltos | Content-Location: /index.htm | Permanente | |
Contenido-MD5 | Una suma MD5 binaria codificada en Base64 del contenido de la respuesta | Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ== | Obsoleto [14] | |
Rango de contenido | Dónde en un mensaje de cuerpo completo pertenece este mensaje parcial | Content-Range: bytes 21010-47021/47022 | Permanente | |
Tipo de contenido | El tipo MIME de este contenido | Content-Type: text/html; charset=utf-8 | Permanente | |
Fecha | La fecha y hora en que se envió el mensaje (en formato "HTTP-date" según lo define RFC 7231) [50] | Date: Tue, 15 Nov 1994 08:12:31 GMT | Permanente | |
Delta-Base | Especifica la etiqueta de entidad de codificación delta de la respuesta. [10] | Delta-Base: "abc" | Permanente | |
ETag | Un identificador para una versión específica de un recurso, a menudo un resumen de mensaje. | ETag: "737060cd8c284d8af7ad3082f209582d" | Permanente | |
Expira | Da la fecha / hora después de la cual la respuesta se considera obsoleta (en formato "HTTP-date" según lo definido por RFC 7231) | Expires: Thu, 01 Dec 1994 16:00:00 GMT | Permanente: estándar | |
SOY | Manipulaciones de instancia aplicadas a la respuesta. [10] | IM: feed | Permanente | |
Última modificación | La última fecha de modificación para el objeto solicitado (en formato "HTTP-date" como se define en RFC 7231) | Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT | Permanente | |
Enlace | Se utiliza para expresar una relación escrita con otro recurso, donde el tipo de relación está definido por RFC 5988 | Link: ; rel="alternate" [51] | Permanente | |
Localización | Se utiliza en la redirección o cuando se crea un nuevo recurso. |
| Permanente | |
P3P | Se supone que este campo establece la política P3P , en forma de P3P:CP="your_compact_policy" . Sin embargo, P3P no despegó, [52] la mayoría de los navegadores nunca lo han implementado por completo, muchos sitios web establecen este campo con texto de política falso, que fue suficiente para engañar a los navegadores sobre la existencia de la política P3P y otorgar permisos para cookies de terceros . | P3P: CP="This is not a P3P policy! See https://en.wikipedia.org/wiki/Special:CentralAutoLogin/P3P for more info." | Permanente | |
Pragma | Campos específicos de implementación que pueden tener varios efectos en cualquier parte de la cadena de solicitud-respuesta. | Pragma: no-cache | Permanente | |
Preferencia-aplicada | Indica qué tokens Prefer fueron aceptados por el servidor y aplicados al procesamiento de la solicitud. | Preference-Applied: return=representation | Permanente | RFC 7240 |
Proxy-Authenticate | Solicite autenticación para acceder al proxy. | Proxy-Authenticate: Basic | Permanente | |
Pines de clave pública [53] | HTTP Public Key Pinning , anuncia hash del certificado TLS auténtico del sitio web | Public-Key-Pins: max-age=2592000; pin-sha256="E9CZ9INDbd+2eRQozYqqbQ2yXLVKB9+xcprMF+44U1g="; | Permanente | |
Reintentar-Después | Si una entidad no está disponible temporalmente, esto indica al cliente que vuelva a intentarlo más tarde. El valor puede ser un período de tiempo específico (en segundos) o una fecha HTTP. [54] |
| Permanente | RFC 2616 , 7231 |
Servidor | Un nombre para el servidor | Server: Apache/2.4.1 (Unix) | Permanente | |
Set-Cookie | Una cookie HTTP | Set-Cookie: UserID=JohnDoe; Max-Age=3600; Version=1 | Permanente: estándar | |
Estricta seguridad en el transporte | Una política de HSTS que informa al cliente HTTP cuánto tiempo almacenar en caché la política de solo HTTPS y si esto se aplica a los subdominios. | Strict-Transport-Security: max-age=16070400; includeSubDomains | Permanente: estándar | |
Remolque | El valor del campo general Trailer indica que el conjunto dado de campos de encabezado está presente en el final de un mensaje codificado con codificación de transferencia fragmentada . | Trailer: Max-Forwards | Permanente | |
Codificación de transferencia | La forma de codificación utilizada para transferir de forma segura la entidad al usuario. Los métodos actualmente definidos son: fragmentado , comprimir, desinflar, gzip, identidad. No debe utilizarse con HTTP / 2. [13] | Transfer-Encoding: chunked | Permanente | |
Tk | Encabezado de estado de seguimiento, valor sugerido para enviarse en respuesta a un DNT (no realizar seguimiento), valores posibles: "!" - bajo construcción"?" - dinámico"G": puerta de entrada a varias partes"N": sin seguimiento"T": seguimiento"C": seguimiento con consentimiento"P": seguimiento solo si se da su consentimiento"D": sin tener en cuenta el DNT"U" - actualizado | Tk: ? | Permanente | |
Potenciar | Pídale al cliente que actualice a otro protocolo. No debe usarse en HTTP / 2 [13] | Upgrade: h2c, HTTPS/1.3, IRC/6.9, RTA/x11, websocket | Permanente | |
Variar | Indica a los servidores proxy descendentes cómo hacer coincidir los encabezados de solicitudes futuras para decidir si la respuesta almacenada en caché se puede usar en lugar de solicitar una nueva del servidor de origen. |
| Permanente | |
Vía | Informa al cliente de los proxies a través de los cuales se envió la respuesta. | Via: 1.0 fred, 1.1 example.com (Apache/1.1) | Permanente | |
Advertencia | Una advertencia general sobre posibles problemas con el cuerpo de la entidad. | Warning: 199 Miscellaneous warning | Permanente | |
Autenticación WWW | Indica el esquema de autenticación que se debe utilizar para acceder a la entidad solicitada. | WWW-Authenticate: Basic | Permanente | |
Opciones de X-Frame [55] | Protección contra el secuestro de clics : denegar - sin renderizado dentro de un marco, mismo origen - sin renderizado si el origen no coincide, permitir desde - permitir desde una ubicación especificada, permitir todo - no estándar, permitir desde cualquier ubicación | X-Frame-Options: deny | Obsoleto [56] |
Campos de respuesta no estándar comunes
Nombre del campo | Descripción | Ejemplo |
---|---|---|
Política de seguridad de contenido, Política de seguridad de contenido X , X-WebKit-CSP [57] | Definición de política de seguridad de contenido . | X-WebKit-CSP: default-src 'self' |
NEL [58] | Se utiliza para configurar el registro de solicitudes de red. | NEL: { "report_to": "name_of_reporting_group", "max_age": 12345, "include_subdomains": false, "success_fraction": 0.0, "failure_fraction": 1.0 } |
Política de permisos [59] | Para permitir o deshabilitar diferentes funciones o API del navegador. | Permissions-Policy: fullscreen=(), camera=(), microphone=(), geolocation=(), interest-cohort=()[60] |
Actualizar | Se utiliza en la redirección o cuando se crea un nuevo recurso. Esta actualización se redirige después de 5 segundos. Extensión de encabezado introducida por Netscape y compatible con la mayoría de los navegadores web. Definido por el estándar HTML [61] | Refresh: 5; url=http://www.w3.org/pub/WWW/People.html |
Informar a [62] | Indica al agente de usuario que almacene los puntos finales de informes para un origen. | Report-To: { "group": "csp-endpoint", "max_age": 10886400, "endpoints": [ { "url": "https-url-of-site-which-collects-reports" } ] } |
Estado | Campo de encabezado CGI que especifica el estado de la respuesta HTTP. Las respuestas HTTP normales utilizan una "Línea de estado" separada en su lugar, definida por RFC 7230. [63] | Status: 200 OK |
Tiempo-Permitir-Origen | El Timing-Allow-Origin encabezado de respuesta especifica los orígenes a los que se les permite ver los valores de los atributos recuperados a través de las funciones de la API de sincronización de recursos , que de otro modo se reportarían como cero debido a restricciones de origen cruzado. [64] | Timing-Allow-Origin: *
|
X-Content-Duración [65] | Proporcione la duración del audio o video en segundos; solo es compatible con los navegadores Gecko | X-Content-Duration: 42.666 |
X-Content-Type-Options [66] | El único valor definido, "nosniff", evita que Internet Explorer detecte una respuesta MIME fuera del tipo de contenido declarado. Esto también se aplica a Google Chrome , al descargar extensiones. [67] | X-Content-Type-Options: nosniff [68] |
X-Powered-By [69] | Especifica la tecnología (por ejemplo, ASP.NET, PHP, JBoss) que soporta la aplicación web (detalles de la versión a menudo están en X-Runtime , X-Version o X-AspNet-Version ) | X-Powered-By: PHP/5.4.0 |
X-Redirect-By [70] | Especifica el componente responsable de una redirección en particular. | X-Redirect-By: WordPress X-Redirect-By: Polylang |
X-Request-ID, X-Correlation-ID [40] | Correlaciona las solicitudes HTTP entre un cliente y un servidor. | X-Request-ID: f058ebd6-02f7-4d3f-942e-904344e8cde5 |
Compatible con X-UA [71] | Recomienda el motor de renderizado preferido (a menudo un modo de compatibilidad con versiones anteriores) para usar para mostrar el contenido. También se utiliza para activar Chrome Frame en Internet Explorer. En HTML Standard, solo IE=edge se define el valor. [72] | X-UA-Compatible: IE=edge X-UA-Compatible: IE=EmulateIE7 X-UA-Compatible: Chrome=1 |
Protección X-XSS [73] | Filtro de secuencias de comandos entre sitios (XSS) | X-XSS-Protection: 1; mode=block |
Efectos de los campos seleccionados
Evitar el almacenamiento en caché
Si un servidor web responde con Cache-Control: no-cache
, un navegador web u otro sistema de almacenamiento en caché (proxies intermedios) no debe utilizar la respuesta para satisfacer solicitudes posteriores sin antes consultar con el servidor de origen (este proceso se denomina validación). Este campo de encabezado es parte de la versión 1.1 de HTTP y algunas cachés y navegadores lo ignoran. Se puede simular estableciendo el Expires
valor del campo de encabezado de la versión 1.0 de HTTP en un tiempo anterior al tiempo de respuesta. Tenga en cuenta que no-cache no indica al navegador ni a los proxies si almacenar o no el contenido en caché. Simplemente le dice al navegador y a los proxies que validen el contenido de la caché con el servidor antes de usarlo (esto se hace usando los atributos If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match mencionados anteriormente). El envío de un valor sin caché indica a un navegador o proxy que no utilice el contenido de la caché simplemente basándose en "criterios de actualización" del contenido de la caché. Otra forma común de evitar que se muestre contenido antiguo al usuario sin validación es Cache-Control: max-age=0
. Esto le indica al agente de usuario que el contenido está obsoleto y debe validarse antes de su uso.
El campo de encabezado Cache-Control: no-store
está destinado a indicar a una aplicación de navegador que haga el mejor esfuerzo para no escribirlo en el disco (es decir, no almacenarlo en caché).
La solicitud de que un recurso no se almacene en caché no garantiza que no se escriba en el disco. En particular, la definición de HTTP / 1.1 establece una distinción entre almacenes históricos y cachés. Si el usuario regresa a una página anterior, es posible que un navegador aún le muestre una página que se ha almacenado en el disco en la tienda de historial. Este es el comportamiento correcto de acuerdo con la especificación. Muchos agentes de usuario muestran un comportamiento diferente al cargar páginas desde el almacén de historial o la caché dependiendo de si el protocolo es HTTP o HTTPS.
El Cache-Control: no-cache
campo de encabezado HTTP / 1.1 también está diseñado para su uso en solicitudes realizadas por el cliente. Es un medio para que el navegador le diga al servidor y a cualquier caché intermedio que quiere una versión nueva del recurso. El Pragma: no-cache
campo de encabezado, definido en la especificación HTTP / 1.0, tiene el mismo propósito. Sin embargo, solo se define para el encabezado de la solicitud. No se especifica su significado en un encabezado de respuesta. [74] El comportamiento de Pragma: no-cache
en una respuesta es específico de la implementación. Si bien algunos agentes de usuario prestan atención a este campo en las respuestas, [75] la RFC HTTP / 1.1 advierte específicamente contra la confianza en este comportamiento.
Ver también
- Inyección de encabezado HTTP
- HTTP ETag
- Lista de códigos de estado HTTP
Referencias
- ^ "Protocolo de transferencia de hipertexto (HTTP / 1.1): enrutamiento y sintaxis de mensajes" . ietf.org . Consultado el 23 de julio de 2014 .
- ^ RFC-7230 sección 3.2
- ^ RFC-7210 sección 3.1.1
- ^ RFC-7231 sección 4.1
- ^ Grupo de trabajo de ingeniería de Internet (1 de junio de 2012). "RFC 6648" . Consultado el 12 de noviembre de 2012 .
- ^ "Encabezados de mensajes" . Iana.org. 11 de junio de 2014 . Consultado el 12 de junio de 2014 .
- ^ "Protocolo de transferencia de hipertexto (HTTP / 1.1): enrutamiento y sintaxis de mensajes" . itef.org . Consultado el 24 de julio de 2014 .
- ^ "Protocolo de transferencia de hipertexto (HTTP / 1.1): semántica y contenido" . ietf.org . Consultado el 24 de julio de 2014 .
- ^ "núcleo - Servidor HTTP Apache" . Httpd.apache.org. Archivado desde el original el 9 de mayo de 2012 . Consultado el 13 de marzo de 2012 .
- ^ a b c RFC 3229 . doi : 10.17487 / RFC3229 .
- ^ a b c "Intercambio de recursos entre orígenes" . Consultado el 24 de julio de 2017 .
- ^ a b "Protocolo de transferencia de hipertexto (HTTP / 1.1): enrutamiento y sintaxis de mensajes" . IETF . Junio de 2014 . Consultado el 19 de diciembre de 2014 .
- ^ a b c d e f g h yo "Protocolo de transferencia de hipertexto versión 2 (HTTP / 2)" . IETF . Mayo de 2015 . Consultado el 6 de junio de 2017 .
- ^ a b "Protocolo de transferencia de hipertexto (HTTP / 1.1): semántica y contenido" . Consultado el 3 de junio de 2015 .
- ^ "Extensión HTTP reenviada: Introducción" . IETF . Junio de 2014 . Consultado el 7 de enero de 2016 .
- ^ "Protocolo de transferencia de hipertexto (HTTP / 1.1): enrutamiento y sintaxis de mensajes" . IETF . Junio de 2014 . Consultado el 24 de julio de 2014 .
- ^ "Protocolo de transferencia de hipertexto versión 2 (HTTP / 2)" . IETF . Mayo de 2015 . Consultado el 6 de junio de 2017 .
- ^ "Encabezados de mensajes" . www.iana.org . Consultado el 26 de noviembre de 2018 .
- ^ "Protocolo de transferencia de hipertexto versión 2 (HTTP / 2)" . httpwg.org . 30 de mayo de 2015 . Consultado el 22 de febrero de 2019 .
- ^ "Actualizar solicitudes inseguras - recomendación del candidato del W3C" . W3C . 8 de octubre de 2015 . Consultado el 14 de enero de 2016 .
- ^ https://www.stoutner.com/the-x-requested-with-header/
- ^ "Pruebe el encabezado HTTP" No rastrear " . Consultado el 31 de enero de 2011 .
- ^ "Protección de seguimiento web: estándares mínimos y oportunidades para innovar" . Consultado el 24 de marzo de 2011 .
- ^ IETF Do Not Track: una opción de exclusión de seguimiento web de terceros universal el 7 de marzo de 2011
- ^ Expresión de preferencia de seguimiento de W3C (DNT) , 26 de enero de 2012
- ^ Amos Jeffries (2 de julio de 2010). "SquidFaq / ConfiguringSquid - Wiki de proxy web de Squid" . Consultado el 10 de septiembre de 2009 .
- ^ La Fundación de Software Apache. "mod_proxy - Servidor Apache HTTP Versión 2.2" . Consultado el 12 de noviembre de 2014 .
- ^ Dave Steinberg (10 de abril de 2007). "¿Cómo ajusto mi sitio SSL para que funcione con el balanceador de carga de GeekISP?" . Consultado el 30 de septiembre de 2010 .
- ^ "Ayudando a la comunicación segura: cliente a servidor front-end" . 27 de julio de 2006 . Consultado el 23 de abril de 2012 .
- ^ "Especificación 2.5.1 del servidor OpenSocial Core API" . Consultado el 8 de octubre de 2014 .
- ^ "ID de dispositivo ATT" . Consultado el 14 de enero de 2012 .
- ^ "Perfil WAP" . Consultado el 14 de enero de 2012 .
- ^ de Boyne Pollard, Jonathan (2007). "El encabezado Proxy-Connection: es un error en la forma en que algunos navegadores web usan HTTP" . Consultado el 16 de enero de 2018 .
- ^ "Verizon inyectando cookies permanentes para rastrear a los clientes móviles, evitando los controles de privacidad" . Fundación Frontera Electrónica . Consultado el 19 de enero de 2014 .
- ^ "Comprobación de balizas de identificación única conocidas de AT&T, Verizon, Sprint, Bell Canada y Vodacom" . Consultado el 19 de enero de 2014 .
- ^ Craig Timberg. "Verizon, AT&T rastrea a sus usuarios con 'supercookies ' " . The Washington Post . Consultado el 19 de enero de 2014 .
- ^ "Protección contra la falsificación de solicitudes entre sitios de SAP" . SAP SE . Consultado el 20 de enero de 2015 .
- ^ "Protección contra la falsificación de solicitudes de sitios cruzados de Django" . Django (marco web) . Archivado desde el original el 20 de enero de 2015 . Consultado el 20 de enero de 2015 .
- ^ "Protección de falsificación de solicitud de sitio cruzado angular (XSRF)" . AngularJS . Consultado el 20 de enero de 2015 .
- ^ a b "¿Qué es el encabezado http X-REQUEST-ID?" . stackoverflow.com . Consultado el 19 de mayo de 2016 .
- ^ "ID de solicitud HTTP" . devcenter.heroku.com . Consultado el 6 de febrero de 2018 .
- ^ "El valor de los ID de correlación" . Blog de Rapid7 . 23 de diciembre de 2016 . Consultado el 13 de abril de 2018 .
- ^ Hilton, Peter. "ID de correlación para arquitecturas de microservicios - Peter Hilton" . hilton.org.uk . Consultado el 13 de abril de 2018 .
- ^ "Save Data API Living Document Draft Community Group Report 2.1.1. Campo de encabezado de solicitud de guardar datos" . Grupo Comunitario Incubadora de Plataformas Web . 30 de junio de 2020 . Consultado el 5 de marzo de 2021 .
- ^ "RFC 5789" . Consultado el 24 de diciembre de 2014 .
- ^ "Servicios alternativos HTTP" . IETF. Abril de 2016 . Consultado el 19 de abril de 2016 .
- ^ "Servicios alternativos HTTP, sección 3" . IETF. Abril de 2016 . Consultado el 8 de junio de 2017 .
- ^ "RFC 6266" . Consultado el 13 de marzo de 2015 .
- ^ "RFC 7231 - Protocolo de transferencia de hipertexto (HTTP / 1.1): Semántica y contenido" . Tools.ietf.org . Consultado el 11 de diciembre de 2017 .
- ^ "Encabezados de fecha HTTP compatibles con RFC7231" .
- ^ Indique la versión canónica de una URL respondiendo con el encabezado HTTP Link rel = "canonical". Recuperado: 2012-02-09
- ^ Trabajo W3C P3P suspendido
- ^ "Extensión de fijación de clave pública para HTTP" . IETF . Consultado el 17 de abril de 2015 .
- ^ "Protocolo de transferencia de hipertexto (HTTP / 1.1): semántica y contenido" . Consultado el 24 de julio de 2014 .
- ^ "Opciones de marco X de campo de encabezado HTTP" . IETF. 2013 . Consultado el 12 de junio de 2014 .
- ^ "Nivel de política de seguridad de contenido 2" . Consultado el 2 de agosto de 2014 .
- ^ "Política de seguridad de contenido" . W3C. 2012 . Consultado el 28 de abril de 2017 .
- ^ "NEL" . Red de desarrolladores de Mozilla . 2021 . Consultado el 18 de mayo de 2021 .
- ^ "Política de permisos" . W3C. 2020 . Consultado el 1 de mayo de 2021 .
- ^ "¿Estoy FLOCADO?" . EFF. 2021 . Consultado el 1 de mayo de 2021 .
- ^ "Defina el encabezado HTTP Refresh por annevk · Pull Request # 2892 · whatwg / html" . GitHub . 9 de agosto de 2017 . Consultado el 17 de abril de 2021 .
- ^ "CSP: informar a" . Red de desarrolladores de Mozilla . 2021 . Consultado el 18 de mayo de 2021 .
- ^ "Protocolo de transferencia de hipertexto (HTTP / 1.1): enrutamiento y sintaxis de mensajes" . Consultado el 24 de julio de 2014 .
- ^ "Tiempo-Permitir-Origen" . Red de desarrolladores de Mozilla . Consultado el 25 de enero de 2018 .
- ^ "Configuración de servidores para medios Ogg" . 26 de mayo de 2014 . Consultado el 3 de enero de 2015 .
- ^ Eric Lawrence (3 de septiembre de 2008). "IE8 Security Part VI: Actualización Beta 2" . Consultado el 28 de septiembre de 2010 .
- ^ "Alojamiento - Extensiones de Google Chrome - Código de Google" . Consultado el 14 de junio de 2012 .
- ^ van Kesteren, Anne (26 de agosto de 2016). "Obtener estándar" . WHATWG . Archivado desde el original el 26 de agosto de 2016 . Consultado el 26 de agosto de 2016 .
- ^ "¿Por qué ASP.NET framework agrega el encabezado HTTP 'X-Powered-By: ASP.NET' en las respuestas? - Stack Overflow" . Consultado el 30 de septiembre de 2010 .
- ^ "Encabezado de respuesta HTTP X-Redirect-By" . Consultado el 29 de mayo de 2021 .
- ^ "Definición de la compatibilidad de documentos: especificar modos de compatibilidad de documentos" . 1 de abril de 2011 . Consultado el 24 de enero de 2012 .
- ^ "HTML Living Standard 4.2.5.3 directivas Pragma, estado compatible con X-UA" . WHATWG . 12 de marzo de 2021 . Consultado el 14 de marzo de 2021 .
Para los meta elementos con un atributo http-equiv en el estado compatible con X-UA, el atributo de contenido debe tener un valor que sea una coincidencia ASCII que no distinga entre mayúsculas y minúsculas para la cadena
"IE=edge"
. - ^ Eric Lawrence (2 de julio de 2008). "IE8 Security Part IV: The XSS Filter" . Consultado el 30 de septiembre de 2010 .
- ^ "Protocolo de transferencia de hipertexto (HTTP / 1.1): almacenamiento en caché" . ietf.org . Consultado el 24 de julio de 2014 .
- ^ "Cómo evitar el almacenamiento en caché en Internet Explorer" . Microsoft . 22 de septiembre de 2011 . Consultado el 15 de abril de 2015 .
enlaces externos
- Encabezados: nombres de campo de encabezado de mensaje permanente
- RFC 6265: Mecanismo de gestión de estado HTTP IETF
- RFC 7230: Protocolo de transferencia de hipertexto (HTTP / 1.1): Sintaxis y enrutamiento de mensajes
- RFC 7231: Protocolo de transferencia de hipertexto (HTTP / 1.1): Semántica y contenido
- RFC 7232: Protocolo de transferencia de hipertexto (HTTP / 1.1): solicitudes condicionales
- RFC 7233: Protocolo de transferencia de hipertexto (HTTP / 1.1): Solicitudes de rango
- RFC 7234: Protocolo de transferencia de hipertexto (HTTP / 1.1): Almacenamiento en caché
- RFC 7235: Protocolo de transferencia de hipertexto (HTTP / 1.1): Autenticación
- RFC 7239: Extensión HTTP reenviada
- RFC 7240: Preferir encabezado para HTTP
- Encabezados HTTP / 1.1 desde el punto de vista de un servidor web
- Internet Explorer y encabezados HTTP personalizados - IEInternals de EricLaw - Página principal del sitio - Blogs de MSDN