HTTP headers

Las cabeceras (en inglés headers) HTTP permiten al cliente y al servidor enviar información adicional junto a una petición o respuesta. Una cabecera de petición esta compuesta por su nombre (no sensible a las mayusculas) seguido de dos puntos ':', y a continuación su valor (sin saltos de línea). Los espacios en blanco a la izquierda del valor son ignoradosSe pueden agregar cabeceras propietarias personalizadas usando el prefijo 'X-', pero esta convención se encuentra desfasada desde Julio de 2012, debido a los inconvenientes causados cuando se estandarizaron campos no estandar en el RFC 6648; otras están listadas en un registro IANA, cuyo contenido original fue definido en el RFC 4229, IANA tambien mantiene un registro de propuestas para nuevas cabeceras HTTP

Las Cabeceras pueden ser agrupadas de acuerdo a sus contextos:

  • Cabecera general: Cabeceras que se aplican tanto a las peticiones como a las respuestas, pero sin relación con los datos que finalmente se transmiten en el cuerpo.
  • Cabecera de consulta: Cabeceras que contienen más información sobre el contenido que va a obtenerse o sobre el cliente.
  • Cabecera de respuesta: Cabeceras que contienen más información sobre el contenido, como su origen o el servidor (nombre, versión, etc.).
  • Cabecera de entidad: Cabeceras que contienen más información sobre el cuerpo de la entidad, como el tamaño del contenido o su tipo MIME.

Las cabeceras también pueden clasificarse de acuerdo a cómo se comportan frente a ellas los proxies:

Cabeceras de extremo a extremo

Estas cabeceras deben ser enviadas al recipiente final del mensaje; esto es, el servidor (para una petición) o el cliente (para una respuesta). Los proxies intermediarios deben transmitir las cabeceras de extremo-a-extremo sin modificar, y las cachés deben guardarlas tal y como son recibidas.

Cabeceras de paso

Estas cabeceras sólo son significativas para conexiones de un paso, y no deben ser transmitidas por proxies o almacenarse en caché. Éstas cabeceras son: Connection, Keep-Alive, Proxy-Authenticate, Proxy-Authorization, TE, Trailer, Transfer-Encoding and Upgrade. La cabecera general Connection sólo puede usarse para este tipo de cabeceras.

La siguiente lista agrupa las cabeceras HTTP en categorías según su uso. Para visualizar una lista en orden alfabético, use el navegador del lado izquierdo.

Autenticación

WWW-Authenticate

Define el método de autenticación que debería ser usado para tener acceso al contenido.

Authorization

Contiene las credenciales para autenticar a un usuario con un servidor.

Proxy-Authenticate

Define el método de autenticación que debería ser usado para tener acceso a un recurso que se encuentre tras un servidor proxy.

Proxy-Authorization

Contiene las credenciales para autenticar a un usuario con un servidor proxy.

Almacenamiento en caché

Age

El tiempo en el que un objeto ha estado en una caché proxy, expresado en segundos.

Cache-Control

Especifica directivas para los mecanismos de almacenamiento en caché, tanto para peticiones como para respuestas.

Expires

La fecha y tiempo tras las cuales una respuesta se considera agotada.

Pragma

Cabecera specífica para implementaciones que puede tener diferentes efectos a lo lartgo del proceso de petición-respuesta. Utilizada para implementar retrocompatibilidad con cachés de tipo HTTP/1.0 donde la cabecera Cache-Control aún no esté presente.

Warning

Un campo de alerta general, que contiene i nformación sobre diferentes problemas posibles.

Indicaciones sobre el cliente

Condicionales

Last-Modified

Se trata de un validador, indicando la fecha de la última modificación del recurso, utilizado para comparar diferentes versiones del mismo recurso. No es tan preciso como ETag, pero es más sencillo de calcular en algunos entornos. Las peticiones condicionales que usan If-Modified-Since y If-Unmodified-Sinceutilizan este valor para cambiar el comportamiento de la petición.

ETag

Se trata de un validador, un tipo de hilo único identificando la versión del recurso. Las peticiones condicionales que usan If-Match y If-None-Match utilizan este valor para cambiar el comportamiento de la petición.

If-Match

Realiza la petición condicional y aplican el método sólo si el recurso almacenado coincide con uno de los ETags asignados.

If-None-Match

Realiza la petición condicional y aplican el método sólo si el recurso almacenado no coincide con ninguno de los ETags. Ésta cabecera se utiliza para actualizar cachés (para peticiones seguras), o para prevenir la subida de un recurso si éste ya existe en el servidor.

If-Modified-Since

Realiza la petición condicional y espera que la entidad sea transmitia sólo si ha sido modificada tras la fecha especificada. Esta cabecera se usa para transmitir datos si la cabecera ha quedado desfasada.

If-Unmodified-Since

Realiza la petición condicional y espera que la entidad sea transmitia sólo si no ha sido modificada tras la fecha especificada. Esta cabecera se usa para preservar la coherencia de un nuevo fragmento de un rango especifico respecto a otros ya existentes, o para implementar un sistema de control de concurrencia optimistacuando se están modificando documentos existentes.

Gestión de conexiones

Connection

Controla si la conexión a la red se mantiene activa después de que la transacción en curso haya finalizado.

Keep-Alive

Controla el tiempo durante el cual una conexión persistente debe permanecer abierta.

Negociación de contenido

Accept

Informa al servidor sobre los diferentes tipos de datos que pueden enviarse de vuelta. Es de tipo MIME.

Accept-Charset

Informa al servidor sobre el set de caracteres que el cliente puede entender.

Accept-Encoding

Informa al servidor sobre el algoritmo de codificación, habitualmente un algoritmo de compresión, que puede utilizarse sobre el recurso que se envíe de vuelta en la respuesta.

Accept-Language

Informa al servidor sobre el lenguage que el servidor espera recibir de vuelta. Se trata de una indicación, y no estará necesariamente sometida al control del cliente: el servidor siempre deberá estar atento para no sobreescribir una selección específica del usuario (como, por ejemplo, una selección de idiomas en una lista desplegable).

Controles

Cookies

Contiene HTTP cookies enviadas previamente por el servidor con la cabecera Set-Cookie .

Envia cookies desde el servidor al usuario.

Cookie2 Obsoleto

Habitualmente contenía una cookie HTTP, enviada previamente por el servidor con la cabecera Set-Cookie2 , pero ha quedado obsoleta por la especificación. Utiliza en su lugar Cookie.

Set-Cookie2 Obsoleto

Se utilizaba para enviar cookies desde el servidor al usuario, but has been obsoleted by the specification. pero ha quedado obsoleta por la especificación. Utiliza en su lugar Set-Cookie .

CORS

Access-Control-Allow-Origin

Indica si la respuesta puede ser compartida.

Access-Control-Allow-Credentials

Indica si la respuesta puede quedar expuesta o no cuando el marcador de la credencial retorna como 'true'.

Access-Control-Allow-Headers

Utilizado como respuesta a una solicitud de validación para indicár qué cabeceras HTTP pueden utilizarse a la hora de lanzar la petición.

Access-Control-Allow-Methods

Especifica el método (o métodos) permitido al acceder al recurso, en respuesta a una petición de validación.

Access-Control-Expose-Headers

Indica qué cabeceras pueden ser expuestas como parte de una respuesta al listar sus nombres.

Access-Control-Max-Age

Indica durante cuánto tiempo puede guardarse el resultado de una solicitud de validación.

Access-Control-Request-Headers

Utilizada al lanzar una petición de validación, para permitir al servidor saber qué cabeceras HTTP se utilizarán cuando la petición en cuestión se lance.

Access-Control-Request-Method

Utilizada al enviar una solicitud de validación que permite al servidor saber qué método HTTP se utilizará cuando la petición en cuestión se lance.

Origin

Indica el punto de origen de una petición de recogida.

Timing-Allow-Origin

Especifica los origines que tienen permitido ver los valores de los atributos obtenidos mediante las características de la Resource Timing API, que de otra forma serían reportados como cero debido a los orígenes cruzados.

Cabeceras sin seguimiento

DNT

Usada para indicar las preferencias de seguimiento (tracking) del usuario.

Tk

Indica el estado del seguimiento que se aplica a la petición en curso.

Descargas

Content-Disposition

Una cabecera de respuesta usada en caso de que el recurso transmitid deba mostrarse en pantalla , o debe ser gestionada como una descarga y por tanto el navegador deba presentar una pantalla de 'Guardar Como'.

Mensajes sobre la información del cuerpo (body)

Content-Length

Indica el tamaño del cuerpo del recurso, expresado en números decimales de octetos, que ha sido enviado al recipiente.

Content-Type

Indica el tipo de medio del recurso .

Content-Encoding

Utilizado para indicar el algoritmo de compresión.

Content-Language

Indica el idioma (o idiomas) elegidos para los usuarios, de forma que se pueda mostrar contenido diferenciado para el usuario de acuerdo a sus preferencias de idioma.

Content-Location

Indica un punto de origen alternativo para un recurso.

Proxies

Forwarded

Contiene información sobre el 'lado cliente' de un servidor proxy, que se alteraría o perdería si un proxy está involucrado en la ruta de la petición.

X-Forwarded-For No estándar

Identifica la 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.

X-Forwarded-Host No estándar

Identifies the la dirección original solicitada que un cliente haya utilizado para conectarse a un proxy o equilibrador de carga.

X-Forwarded-Proto No estándar

Identifica el protocolo (HTTP o HTTPS) que un cliente haya utilizado para conectarse a un proxy o equilibrador de carga.

Via

Añadida por los proxies, y pueden aparecer tanto en las cabeceras de petición como las de respuesta.

Redirecciones

Location

Indica la URL a la que debe redirigir una página determinada.

Contexto de petición

From

Contiene la dirección de email de un usuario humano que controla el gestor de peticiones.

Host

Especifica el nombre de dominio del servidor (para alojamiento virtual), y (opcionalmente) el número de puerto TCP en el que está escuchando el servidor.

Referer

Indica la dirección de la página web previa desde la cual un link nos ha redirigido a la actual.

Referrer-Policy

Establece la información del referer que deberá ser enviada en las peticiones que incluyan Referer.

User-Agent

Contiene un string característico que será examinado por el protocolo de red para identificar el tipo de aplicación, sistema operativo, proveedor de software o versión del software del agente de software que realiza la petición. Véase también Firefox user agent string reference.

Contexto de respuesta

Allow

Lista el rango de métodos de peticiones HTTP aceptadas por un servidor.

Server

Contiene información sobre el software utilizado por el servidor de origen para gestionar la petición.

Peticiones de rango

Accept-Ranges

Indica si el servidor acepta peticiones de rango y, de ser así, en qué unidades puede expresarse ese rango.

Range

Indica la parte del documento que el servidor debe devolver.

If-Range

Crea una petición de rango condicional que sólo es satisfecha cuando el etag o los datos provistos coinciden con los del recurso remoto. Se usan para prevenir la descarga de dos rangos desde versiones incompatibles del mismo recurso.

Content-Range

Indica el lugar que debe ocupar un mensaje parcial dentro de la totalidad del cuerpo del recurso.

Seguridad

Content-Security-Policy (CSP)

Controla qué recursos puede cargar el usuario para una página concreta.

Content-Security-Policy-Report-Only

Permite a los desarrolladores web experimentar con políticas de acceso, monotorizando (pero sin implementar) sus efectos. Éstos informes de violación de protocolo contienen documentos del tipo JSON enviados mediante una petición HTTP POST hacia el URI especificado.

Expect-CT

Permite a los sitios optar por informar y/o hacer cumplir los requerimientos de Transparencia de Certificados, lo que impide que el uso de certificados publicados incorrectamente por ese sitio, pase desapercibido. Cuando un sitio habilita el encabezado Expect-CT, se solicita a Chrome que verifique que cualquier certificado para ese sitio, aparezca en los registros públicos de CT.

Public-Key-Pins (HPKP)

Asocia una clave criptográfica pública y específica con un determinado servidor web para reducir el riesgo de MITM ataques con certificados falsificados.

Public-Key-Pins-Report-Only

Envía reportes al report-uri especificado en la cabecera, sin bloquear la conexión entre cliente y servidor aún cuando el pinning ha sido violado.

Strict-Transport-Security (HSTS)

Fuerza la comunicación utilizando HTTPS en lugar de HTTP.

Upgrade-Insecure-Requests

Envía una señal al servidor expresando la preferencia del cliente por una respuesta encriptada y autenticada, y esta puede manejar de forma satisfactoria la directiva upgrade-insecure-requests.

X-Content-Type-Options

Deshabilita el MIME sniffing y fuerza al navegador a utilizar el tipo establecido en Content-Type.

X-Download-Options

...

X-Frame-Options (XFO)

Le indica al navegador que debe renderizar una página utilizando <frame>, <iframe> o <object>.

X-Permitted-Cross-Domain-Policies

...

X-Powered-By

...

X-XSS-Protection

Habilita los filtros de cross-site scripting.

Eventos enviados por el servidor

Codificación de transferencia

Transfer-Encoding

Especifica la forma de codificación para transferir la entidad al usuario de forma segura.

TE

Especifica la codificación de transferencia que el usuario estará dispuesto a aceptar.

Trailer

Le permite al remitente incluir campos adicionales al final de un mensaje fragmentado.

WebSockets

Otros

Date

Contiene la fecha y la hora en que el mensaje fue originado.

Expect-CT

Le permite a los sitios el optar por reportar o forzar los requerimientos de transparencia de certificado.

Large-Allocation

Le indica al navegador que la página a ser cargada va a realizar una asignación grande.

...

Retry-After

Indica cuánto tiempo debe esperar el usuario antes de hacer una solicitud de seguimiento.

Server-Timing

Comunica una o mas métricas y descripciones para un dado ciclo de petición-respuesta.

SourceMap

Enlaza el código generado a un source map.

Upgrade

Éste es un Estándar de Internet Propuesto. Para leer una guía inclusiva de todos los Estándares de Internet Oficiales y Propuestos con información detallada sobre cada uno de ellos, visita esta referencia de Estándares de Internet, que se actualiza de forma diaria. El documento relevante de la RFC para la Actualuzación sobre los Estándares de Cabeceras es el RFC 7230, sección 6.7. El estándar establece reglas para la actualización o cambios a un protocolo doferente en el cliente, servidor, o protocolo de conexiones actuales.Por ejemplo, este estándar de cabecera permite que un cliente cambie de un protocolo HTTP 1.1 al HTTP 2.0, asumiendo que el servidor decida reconocer e implementar la cabecera de Actualización. Ninguna de las partes involucradas está obligada a aceptar los cambios implementados por el campo de la Cabecera de Actualización Upgrade. Puede usarse tanto para cabeceras de cliente como para las del servidor. Si se especifica la cabecera de Actualización, el emisor también DEBE enviar el campo de cabecera de Conexión con la opción de actualización especificada. Para más detalles sobre dicho campo, por favor revisar lasección 6.1 de la ya mencionada RFC.

Vary

Determina cómo emparejar futuras cabeceras de petición para decidir si una respuesta en caché puede utilizarse, en lugar de solicitar una cabecera nueva desde el servidor de origen.

X-DNS-Prefetch-Control

Controla el prefetching de DNS, una característica que permite a muchos navegadores realizar resoluciones de nombre de los dominios sobre ambos enlaces, que un usuario podría elegir seguir; así como URLs pata objetos referenciados por el documento incluyendo imágenes, CSS, archivos Javascript y demás.

X-Firefox-Spdy Obsoleto No estándar

...

X-Requested-With

...

X-Robots-Tag

...

X-UA-Compatible No estándar

Utilizada por Internet Explorer para señalar que tipo de modo de documento utilizar.

Ver también