Cabecera HTTP: conceptos básicos para usuarios

Cuando visitas cualquier sitio web, tu navegador envía una solicitud al servidor web para obtener datos o información del mismo, por ejemplo, un archivo HTML (es decir, una página web). Tanto en la solicitud, la HTTP-Request, como en la respuesta del servidor, se intercambian, además de datos reales, "información meta". Esta información se resume en la cabecera HTTP. Explicamos la función de la cabecera HTTP y sus elementos más importantes.

La función de la cabecera HTTP: un ejemplo

Si quisieras entrar al sitio www.example.com, el servidor web no solo te entregará este sitio web en sí, sino también la siguiente cabecera, la cual es invisible para los usuarios:

Cada una de estas líneas recibe el nombre de campo de cabecera (header field). Cada una de ellas, excepto la primera, consta de nombres y valores separados por dos puntos.

  • HTTP/1.1 es la versión válida del protocolo HTTP.
  • 200 OK es el código de estado. Indica que el servidor ha recibido, entendido y aceptado la solicitud.
  • Content-Encoding y Content-Type proporcionan información sobre el tipo de archivo.
  • Age, Cache-Control, Expires, Vary y X-Cache se refieren al caching del archivo.
  • Etag y Last-Modified se utilizan para el control del archivo entregado.
  • Server se refiere al software del servidor web.
  • Content-lenght es el tamaño del archivo en bytes.

Como puedes ver, la información de cabecera se utiliza principalmente para la coordinación entre el cliente y el servidor: se garantiza que el cliente pueda conocer la forma del archivo, saber si el archivo está actualizado y que el archivo cumpla con las expectativas del navegador.

Las líneas de cabecera que se muestran en el ejemplo son solo una pequeña parte de los campos disponibles. En total, hay casi 100 campos de cabecera HTTP, de los cuales unos 30 sirven para especificar solicitudes HTTP, otros 30 para la respuesta del servidor y toda una serie de otros campos de cabecera que tienen diferentes propósitos y que, en su mayoría, no son utilizados por usuarios comunes.

El siguiente resumen explica los campos de cabecera más importantes.

Campos de cabecera HTTP más importantes

Request header (cabecera de solicitud)

Campo de cabecera Significado Ejemplo
Accept Qué tipos de contenido puede procesar el cliente; si el campo está vacío, esos son todos los tipos de contenido Accept: text/html, application/xml
Accept-Charset Qué caracteres puede mostrar el cliente Accept-Charset: utf-8
Accept-Encoding Qué formatos comprimidos soporta el cliente Accept-Encoding: gzip
Accept-Language Preferencia de idioma Accept-Language: de-DE
Authorization Datos de autenticación (por ejemplo, para un inicio de sesión) Basic WjbU7D25zTAlV2tZ7==
Cache-Control Opciones de mecanismo de caching Cache-Control: no-cache
Cookie Cookies almacenadas para este servidor Cookie: $Version=1; Content=23
Content-Length Longitud del cuerpo de la solicitud Content-Length: 212
Content-Type Tipo MIME del cuerpo; pertinente para las solicitudes POST y PUT Content-Type: application/x_222-form-urlencoded
Date Fecha y hora de la solicitud Date: Mon, 9 March 2020 09:02:22 GMT
Expect Formula una expectativa al servidor, generalmente la recepción de una solicitud grande Expect: 100-continue (El servidor debe enviar el código 100 cuando esté preparado para recibir una solicitud)
Host Nombre de dominio del servidor Host: ejemplo.es
If-Match Permite la ejecución condicional de una acción, dependiendo de la coincidencia de un código transmitido If-Match: „ft678iujhnjio90’pöl“
If-Modified-Since Permite enviar contenido solo si éste ha sido modificado desde el momento especificado IF-Modified-Since: Mon 2 Mar 2020 1:00:00 GMT
If-None-Match Como arriba, pero especificado a través de un ETag (etiqueta de entidad, ver abajo) If-None-Match: „cxdrt5678iujhgbvb“
If-Range Solicita solo la parte del contenido que fue cambiada o que falta en el cache del cliente If-Range: Mon 2 Mar 2020 1:00:00 GMT
If-Unmodified-Since IF-Modified-Since análogo If-Modified-Since: Mon 2 Mar 2020 1:00:00 GMT
Max-Forwards Define el número máximo de veces que la respuesta del servidor puede ser reenviada Max-Forwards: 12
Proxy-Authorization Se utiliza para autenticar al cliente en un servidor proxy Proxy-Authorization: Basic WjbU7D25zTAlV2tZ7==
Range Especifica una parte del contenido solicitado Range: bytes=0-9999
Referrer URL del recurso del que procede la solicitud (es decir, del que se hizo el enlace) Referrer: https://ejemplo.es/index.html
TE Codificación de transferencia aceptada TE: gzip, deflate
User-Agent User-Agent del cliente (es decir, el navegador) Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36

Response header (cabecera de respuesta)

Campo de cabecera Significado Ejemplo
Accept-Ranges Cuáles son las unidades que el servidor acepta para las especificaciones del rango (ver arriba) Accept-Ranges: bytes
Age Número de segundos que el objeto ha estado en el cache Age: 2300
Allow Tipos de solicitud permitidos para un recurso específico Allow: GET, POST, HEAD
Cache-Control Si y cuánto tiempo se puede mantener el objeto en el cache Cache-Control: max-age=4800
Connection Tipo de conexión preferente Connection: close
Content-Encoding Tipo de codificación Content-Encoding: deflate
Content-Language Idioma del contenido Content-Language: de-DE
Content-Length Tamaño del cuerpo en bytes Content-Length: 135674
Content-Location Ubicación del archivo si proviene de un lugar diferente al solicitado (por ejemplo, CDN) Content-Location: /ejemplo.es
Content-Security-Policy Políticas de seguridad del servidor Content-Security-Policy: frame-src 'none‘; object-src 'none‘
Content-Type Tipo MIME del archivo solicitado Content-Type: text/tml; charset=utf-8
Date Tiempo de la respuesta Date: Mon 2 Mar 2020 1:00:00 GMT
ETag Marca una versión específica del archivo ETag: „vt6789oi8uztgfvbn“
Expires Cuándo el archivo debe ser considerado obsoleto Expires: Tue 3 Mar 2020 1:00:00 GMT
Last-Modified Hora de la última modificación del archivo Last-Modified: Mon 2 Mar 2020 1:00:00 GMT
Location Identifica el lugar al que se envió la solicitud Location: https://www.ejemplo.es
Proxy-Authenticate Dice si el cliente debe autenticarse al Proxy y cómo debe hacerlo Proxy-Authenticate: Basic
Retry-After A partir de cuándo el cliente debe reenviar la solicitud si el recurso no está disponible temporalmente (fecha o segundos) Retry-After: 300
Server Identificación del servidor Server: Apache
Set-Cookie Establece una cookie en el cliente Set-Cookie: UserID=XY; Max-Age=3800; Version=1
Transfer-Encoding Método de codificación Transfer-Encoding: gpzip
Vary Indica qué campos de cabecera deben considerarse variables si se solicita un archivo del cache. Vary: User-Agent (=el servidor tiene preparadas diferentes versiones de archivos dependiendo del User Agent)
Via A través de qué proxies se envió la respuesta. Via: 1.1www.ejemplo.es
Consejo

Con la extensión de Chrome HTTP Header Analyzer, podrás leer fácilmente las cabeceras de respuesta de cualquier sitio web.


¡No te vayas! ¡Tenemos algo para ti!
Consigue tu dominio .es un año gratis.

Introduce el dominio que deseas en la barra de búsqueda para comprobar su disponibilidad.
12 meses desde 0€/año IVA incl.
después 10 €/año IVA incl.