En la especificación HTTP, ¿cuál es la cadena que separa las cookies?
-
27-10-2019 - |
Pregunta
Punto y coma ;
, el Cookie:
¿Cuerda o alguna otra cuerda?
Solución
Inspección de cookies en una solicitud HTTP
El encabezado Cookie:
tiene la siguiente sintaxis:
Cookie: <Name> = <Value> { ; <Name> = <Value> }
Por lo tanto, las cookies individuales se separan con punto y coma.
Configuración de cookies en una respuesta HTTP
Por otro lado, al configurar una cookie en la respuesta, existe una cookie por el encabezado Set-Cookie:
:
Set-Cookie: <Name> = <Value> [ ; expires = <Date>] [ ; path = <Path> ] [ ; domain = <Domain> ] // etc…
Para configurar varias cookies, el encabezado Set-Cookie
se repite en una respuesta HTTP.
Notas:
- Consulte aquí para ver un tutorial con ejemplos y RFC 6265 Mecanismo de administración de estado HTTP para una referencia normativa que muestra los detalles completos de la sintaxis.
- El RFC 2965 ahora obsoleto definió un par alternativo de encabezados
Cookie2
ySet-Cookie2
que se abandonaron . - Las versiones obsoletas del Mecanismo de administración de estado HTTP ( RFC 2109 y RFC 2965 ) proporcionaron una forma de plegar varios encabezados
Set-Cookie
(oSet-Cookie2
) en uno. Sin embargo, este plegado no es recomendado por la última especificación de RFC 6265 .
Otros consejos
La respuesta es una coma. ,
firmar.
En el apartado 4.2.2 de RFC 2109 existe esta especificación de Set-Cookie
encabezamiento
set-cookie = "Set-Cookie:" cookies
cookies = 1#cookie
con la siguiente declaración De manera informal, el encabezado de respuesta Set-Cookie comprende el token Set-Cookie:, seguido de una lista separada por comas de una o más cookies. (Formalmente significado de #
en la notación anterior se define en RFC 733 en la sección A.CONVENCIONES NOTACIONALES, punto 5
Se define una construcción "#", similar a "*", de la siguiente manera:
<l>#<m>element
indicando al menos
<l>
y como mucho<m>
elementos, cada uno separado por una o más comas (",").
Sí, el RFC 2109 quedó obsoleto por el RFC 2965, que a su vez quedó obsoleto por RFC 6265.
No, no cambia nada en este contexto ya que
- la mayoría de los servidores y clientes HTTP existentes son compatibles con RFC 2109
- RFC 6265 no no prohibir
Set-Cookie
plegable