Los navegadores web interactúan con los sitios web siguiendo el protocolo HTTP. Este es un conjunto estandarizado de reglas para la comunicación:
- Cuando visitas una página web, el navegador envía solicitudes HTTP para los recursos de la página, como HTML, CSS, JavaScript y las imágenes.
- Cuando un servidor HTTP (un servidor web que aloja un sitio web) recibe una solicitud HTTP válida de un navegador, el servidor responde al navegador con una respuesta HTTP.
- Las solicitudes y respuestas pueden incluir información adicional conocida como encabezados HTTP.
Por ejemplo, considera el sitio cats.example.
.
Solicitud
El acceso a la página cats.example
inicia una cadena de solicitudes a varios dominios. Esto incluye una solicitud de una imagen alojada en cats.example
, una solicitud de una secuencia de comandos de estadísticas de analytics.example
y otras solicitudes de recursos adicionales de otros dominios.
Las solicitudes HTTP se pueden mejorar con encabezados de solicitud HTTP para proporcionar información complementaria del navegador al servidor web. Por ejemplo, a menudo se incluyen encabezados como los siguientes:
Accept-Language: en-US
Este encabezado indica el idioma preferido del usuario, en este caso, inglés (Estados Unidos).User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36
Este encabezado proporciona detalles sobre el navegador y el sistema operativo del usuario, en este caso, "Mozilla/5.0" (familia del navegador), "Macintosh" (sistema operativo) y "Chrome/127.0.0.0" (versión del navegador).
Respuesta
Cuando un servidor web recibe una solicitud válida de un navegador, le envía una respuesta que proporciona el recurso solicitado (la "carga útil"): HTML, CSS, JavaScript, un archivo de imagen, un video o algún otro dato. Así como cada solicitud del navegador puede incluir encabezados de solicitud, cada respuesta del servidor puede incluir encabezados de respuesta. Estos encabezados de respuesta se envían junto con la carga útil.
Un encabezado Set-Cookie
incluido con una respuesta le indica al navegador que almacene un texto: un nombre y un valor. Esto se conoce como cookie HTTP. En respuesta a la solicitud de cats.example/images/cat.jpg
, el servidor cats.example
incluye el encabezado Set-Cookie:cat=tabby
. Esto le indica al navegador que almacene una cookie llamada cat con el valor tabby.
Esa cookie se incluirá en las solicitudes posteriores a cats.example,
hasta que venza o se quite.
Esto permite que el servidor mantenga información sobre el usuario en varias páginas web o sesiones: por ejemplo, que se le mostró al usuario una imagen de un gato atigrado.
Encabezado | Acción | Ejemplo | Efecto | |
---|---|---|---|---|
Respuesta HTTP Del servidor al navegador |
Set‑Cookie
|
El servidor web le pide al navegador que almacene una cookie. | Set‑Cookie:cat=tabby |
Tu navegador almacena la cookie y la proporciona en solicitudes posteriores al servidor que la configuró. |
Solicitud HTTP Del navegador al servidor |
Cookie |
Tu navegador proporciona una cookie. | Cookie:cat=tabby |
La cookie se pone a disposición del servidor que es el destino de la solicitud. |
Demostraciones
- 1pc.glitch.me: Demostración de cookies propias
- 3pc.glitch.me: Demostración de cookies de terceros