Cuando un servidor web responde a una solicitud de un recurso, puede incluir un encabezado Set-Cookie
junto con su respuesta. Ese encabezado le indica a tu navegador que almacene una cookie. Por ejemplo: Set-Cookie:cat=tabby
.
En ¿Qué son las cookies?, se explica cómo funcionan las cookies.
Además de proporcionar un nombre y un valor de cookie, Set-Cookie
puede incluir atributos para controlar si se configuran las cookies y cuándo vencen. Los atributos de la cookie se separan con punto y coma. Por ejemplo:
Set-Cookie:cat=tabby; Secure; HTTPOnly; Expires=Tue, 31 Dec 2999 23:59:59 GMT;
En este documento, se explican los atributos de cookies más importantes:
En Uso de cookies HTTP, se explican los atributos de las cookies con más detalle técnico.
Seguro
Si un encabezado Set-Cookie
incluye Secure
, la cookie solo se incluirá en las solicitudes encriptadas que usen el protocolo HTTPS: la cookie no se incluirá en las solicitudes HTTP. Esto puede ayudar a detener los ataques de intermediarios, en los que un atacante interviene de forma secreta en las comunicaciones entre el navegador y el servidor para transmitir información y, posiblemente, alterarla.
HTTPOnly
Si un encabezado Set-Cookie
incluye HTTPOnly
, JavaScript no puede acceder a la cookie, por ejemplo, con document.cookie
. Esto ayuda a proteger contra ciertos tipos de ataques dirigidos a las cookies.
SameSite
Una solicitud de un recurso de un sitio diferente al que estás visitando es una solicitud de varios sitios. Una cookie establecida en respuesta a una solicitud de sitios cruzados es una cookie de terceros.
El atributo SameSite
controla si se incluirá una cookie de terceros en una solicitud. Tiene tres valores posibles: Strict
, Lax
o None
.
Obtén más información: ¿Qué son las cookies de terceros?
Estricto
La cookie solo se enviará en respuesta a las solicitudes de una página que se encuentre en el sitio de origen de la cookie. Por ejemplo, imagina que un usuario visita cats.example
y tiene una cookie establecida con el atributo SameSite=Strict
. Más tarde, el usuario está en un sitio diferente y sigue un vínculo a una página en cats.example
. La cookie que se configuró no se incluirá en esa solicitud.
Lax
Esto funciona de la misma manera que Strict
, excepto que el navegador también incluirá la cookie cuando el usuario siga un vínculo al sitio de origen de la cookie. (En el ejemplo anterior de Strict
, la cookie se incluiría cuando el usuario siga el vínculo a cats.example
). Lax
es el valor predeterminado si no se incluye ningún atributo SameSite
en un encabezado Set-Cookie
.
Ninguno
Sin restricciones: La cookie se incluirá con una solicitud, ya sea entre sitios o no. Con SameSite=None
, la cookie también debe tener el atributo Secure
.
Particionada
Este atributo te permite habilitar el uso de una cookie en el almacenamiento particionado, con un "tarro de cookies" independiente por sitio de nivel superior. La cookie tiene dos claves, una para el sitio de nivel superior y otra para el dominio que la establece.
Por ejemplo, imagina que el sitio web A y el sitio web B incluyen un iframe del sitio web C. El iframe del sitio web A no puede acceder a un conjunto de cookies particionadas establecido por el iframe del sitio web B: la cookie AC es independiente de la cookie BC.

Las cookies con un atributo Partitioned
se conocen como CHIPS: Cookies Having Independent Partitioned State (cookies con estado particionado independiente).
Las cookies particionadas deben tener el atributo Secure
.
Obtén más información en Cookies Having Independent Partitioned State.
Vencimiento y Max-Age
Puedes especificar una fecha y hora de Expires
, o un Max-Age
en segundos, después de los cuales se debe borrar una cookie y ya no se debe enviar. Por ejemplo:
Set-Cookie:cat=tabby; Expires=Tue, 31 Dec 2999 23:59:59 GMT;
Set-Cookie:cat=tabby; Max-Age=86400
Si no especificas un atributo Max-Age
o Expires
, se borrará una cookie cuando finalice la sesión actual. Este tipo de cookie a veces se conoce como cookie de sesión.
Dominio
Si un encabezado Set-Cookie
tiene un atributo Domain
, la cookie se incluirá en las solicitudes al dominio especificado y a cualquiera de sus subdominios.
Si un encabezado Set-Cookie
no tiene un atributo Domain
, la cookie no se incluirá en las solicitudes a subdominios.
En otras palabras, incluir el atributo Domain
reduce las restricciones de dominio.
Por ejemplo, con una respuesta del sitio web cats.example
:
Set-Cookie:cat=tabby
La cookie solo se incluirá en las solicitudes acats.example
.Set-Cookie:cat=tabby; Domain=cats.example
La cookie se incluirá en las solicitudes acats.example
y en cualquier solicitud de recursos en subdominios comofluffy.cats.example
ouser.assets.cats.example
.
Ruta
Si se incluye un atributo Path
en un encabezado de respuesta Set-Cookie
, la cookie que se establece solo se incluirá en las solicitudes a URLs (en el sitio que estableció la cookie) que coincidan con el valor de Path
.
Por ejemplo:
Set-Cookie:cat=tabby; Path=/articles
La cookie se incluirá en una solicitud a cualquier ruta de URL que comience con/articles
:
✅https://cats.example/articles/tabby/index.html
✅https://cats.example/articles/breeds/tabby/index.html
❎https://cats.example/images/tabby.jpg
❎https://cats.example/en/articles/tabby/index.html
Set-Cookie:cat=tabby; Path=/
Todas las solicitudes a cualquier URL del sitio incluirán la cookie.
Si un encabezado de respuesta Set-Cookie
no tiene un valor Path
, la cookie solo se incluirá en las solicitudes al mismo directorio. Por ejemplo, imagina que se establece una cookie cat=tabby
en respuesta a una solicitud de cats.example/images/tabby.jpg.
. Si no se establece ningún Path
, la cookie solo se incluirá con las solicitudes de archivos dentro del directorio cats.example/images
.
Demostraciones
- 1pc.glitch.me: Demostración de cookies propias
- 3pc.glitch.me: Demostración de cookies de terceros
Herramientas
Más información
- Recetas de cookies propias
- ¿Qué son las cookies?
- ¿Qué son las cookies de terceros?
- Solicitud y respuesta HTTP
- Herramientas de cookies
- Demostraciones de cookies
- Uso de cookies HTTP
- Cookies de SameSite explicadas
- OWASP: Cookies