Guía rápida de cabeceras HTTP

Cabeceras de petición y respuesta, directivas de Cache-Control, cabeceras de seguridad, atributos de cookie y cabeceras CORS, con lo que hace cada una y valores típicos.

Última revisión:

AdSense Placeholder
Slot: header_reference_page
En esta página

Las cabeceras HTTP son las líneas etiquetadas que se envían antes del cuerpo de cada petición y respuesta. Llevan el tipo de contenido, las reglas de caché, las cookies, las credenciales y las políticas de seguridad. Vea las cabeceras que envía cualquier sitio con el Visor de Cabeceras HTTP y puntúe las cabeceras de seguridad de un sitio con el Analizador de Encabezados de Seguridad.

Cabeceras de petición

Cabecera Propósito
Host El sitio solicitado (obligatorio en HTTP/1.1)
User-Agent Identifica el navegador o programa cliente
Accept Tipos de contenido que el cliente admite, como text/html o application/json
Accept-Language Idiomas preferidos, por ejemplo es-ES,es;q=0.9,en;q=0.8
Accept-Encoding Compresión que entiende el cliente (gzip, br)
Authorization Credenciales, como Bearer <token> o Basic <base64>
Cookie Cookies que el navegador devuelve al sitio
Content-Type Formato del cuerpo de la petición (application/json, multipart/form-data)
Origin De dónde viene una petición entre sitios; lo usan CORS y las comprobaciones CSRF
Referer La página anterior (la falta de ortografía es histórica)
If-None-Match Envía el cuerpo solo si el ETag cambió
Range Pide una parte de un archivo, como bytes=0-1023

Cabeceras de respuesta

Cabecera Propósito
Content-Type Formato del cuerpo, con juego de caracteres para texto: text/html; charset=utf-8
Content-Length Tamaño del cuerpo en bytes
Content-Encoding Compresión aplicada al cuerpo (gzip, br)
Location A dónde ir después; se usa con 201 y las redirecciones 3xx
Set-Cookie Guarda una cookie (vea los atributos abajo)
WWW-Authenticate Cómo autenticarse tras un 401
Retry-After Cuándo reintentar tras 429 o 503 (segundos o una fecha)
ETag Etiqueta de versión del contenido, para validar la caché
Last-Modified Cuándo cambió el contenido por última vez
Vary Cabeceras de petición que cambian la respuesta, para que las cachés guarden copias separadas (Vary: Accept-Encoding)

Cache-Control

Directiva Significado
max-age=<seconds> Vigente durante estos segundos, sin preguntar
s-maxage=<seconds> Como max-age, pero para cachés compartidas como las CDN
no-cache Se puede guardar, pero hay que revalidarla con el servidor antes de cada reutilización
no-store No guardarla en ningún sitio (datos sensibles)
public / private private significa que solo el navegador del usuario puede guardarla, no las cachés compartidas
immutable El archivo nunca cambiará en esta URL, así que no revalide
must-revalidate Una vez caducada, no servirla sin consultar al servidor
stale-while-revalidate=<seconds> Sirve la copia caducada mientras obtiene una nueva en segundo plano

Recetas habituales: los archivos estáticos con huella (app.3f9a1c.js) usan public, max-age=31536000, immutable; las páginas HTML usan no-cache; los datos personales usan no-store.

Cabeceras de seguridad

Cabecera Valor típico Propósito
Strict-Transport-Security max-age=31536000; includeSubDomains Hace que los navegadores usen solo HTTPS en este sitio
Content-Security-Policy default-src 'self' Limita de dónde pueden cargarse scripts, estilos e imágenes; la defensa principal contra XSS
X-Content-Type-Options nosniff Impide que los navegadores adivinen otro tipo de contenido
X-Frame-Options DENY or SAMEORIGIN Bloquea que la página se incruste en un marco (frame-ancestors de CSP es el equivalente moderno)
Referrer-Policy strict-origin-when-cross-origin Controla cuánta URL se envía en Referer
Permissions-Policy camera=(), microphone=() Desactiva funciones del navegador que la página no necesita

El Generador de Encabezado CSP ayuda a construir una política, y Política de seguridad de contenido (CSP) explica de qué protege.

Se fijan con Set-Cookie: nombre=valor; Secure; HttpOnly; SameSite=Lax.

Atributo Significado
Secure Solo se envía por HTTPS
HttpOnly Oculta para JavaScript, lo que limita lo que puede robar un ataque XSS
SameSite=Lax | Strict | None Controla el envío de la cookie en peticiones entre sitios; Lax es un buen valor por defecto y None exige Secure
Max-Age / Expires Cuánto dura; sin ellos termina con la sesión del navegador
Domain / Path Qué hosts y rutas lo reciben

Cabeceras CORS

Los navegadores impiden que una página lea la respuesta de otro origen salvo que ese origen lo autorice. Para cualquier cosa más allá de una petición simple, el navegador envía antes una comprobación previa OPTIONS.

Cabecera Propósito
Access-Control-Allow-Origin Qué origen puede leer la respuesta (* para cualquiera, o un origen exacto)
Access-Control-Allow-Methods Métodos permitidos en la respuesta de la comprobación previa
Access-Control-Allow-Headers Cabeceras de petición permitidas en la comprobación previa
Access-Control-Allow-Credentials true permite que la petición lleve cookies; no se puede combinar con *

Los nombres de cabecera no distinguen mayúsculas (content-type es igual que Content-Type), pero sus valores a menudo sí. Para los códigos de estado, vea Guía rápida de códigos de estado HTTP.

Pruebe estas herramientas

Véase también

  • Glosario Política de seguridad de contenido (CSP)
    Una política de seguridad de contenido es una cabecera HTTP que indica al navegador de qué fuentes puede cargar una página scripts.
  • Glosario CORS
    CORS (Cross-Origin Resource Sharing) es el mecanismo del navegador que permite a un servidor autorizar a páginas web de otros orígenes a.
  • Glosario Cookie
    Una cookie es un pequeño dato que un sitio web guarda en su navegador y devuelve con las peticiones posteriores.
  • Guía rápida Guía rápida de códigos de estado HTTP
    Los códigos de estado HTTP que de verdad encontrará, por clases, con los pares que se confunden (401 frente a 403.
  • Guía rápida Guía rápida de tipos MIME
    Los tipos MIME de páginas web, datos, imágenes, audio, vídeo, fuentes y archivos.
AdSense Placeholder
Slot: footer_leaderboard