¿Cómo se pasan las cookies en el protocolo HTTP?
¿Cómo se pasan las cookies en el protocolo HTTP?
4 answers
El servidor envía lo siguiente en su encabezado de respuesta para establecer un campo de cookie.
Set-Cookie:
nombre=
valor
Si hay una cookie establecida, entonces el navegador envía lo siguiente en su encabezado de solicitud.
Cookie:
nombre=
valor
Consulte el artículo HTTP Cookie en Wikipedia para obtener más información.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-07-01 18:26:29
Las cookies se pasan como encabezados HTTP, tanto en la solicitud (cliente -> servidor) como en la respuesta (servidor -> cliente).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-08-12 11:31:13
Aparte de lo que está escrito en otras respuestas, otros detalles relacionados con la ruta de la cookie, la edad máxima de la cookie, si está asegurada o no también se pasa en el encabezado de respuesta Set-Cookie. Por ejemplo:
Set-Cookie:
name=
value[; expires=
date][; domain=
domain][; path=
path][; secure
]
Sin embargo, el cliente no devuelve todos estos detalles al servidor al realizar la siguiente solicitud HTTP.
También puede establecer HttpOnly
marca al final de tu cookie, para indicar que tu cookie es httponly y no se debe permitir el acceso, en scripts por código javascript. Esto ayuda a prevenir ataques como el secuestro de sesiones.
Para más información, véase RFC 2109. También echa un vistazo a Artículo de Nicholas C. Zakas, Explicación de las cookies HTTP.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-04-19 11:38:13
Crear script de ejemplo como resp:
#!/bin/bash
http_code=200
mime=text/html
echo -e "HTTP/1.1 $http_code OK\r"
echo "Content-type: $mime"
echo
echo "Set-Cookie: name=F"
Luego hacer ejecutable y ejecutar así.
./resp | nc -l -p 12346
Abra el navegador y busque la URL: http://localhost:1236 verá el valor de la cookie que es enviado por el navegador
[aaa@bbbbbbbb ]$ ./resp | nc -l -p 12346 GET / HTTP/1.1 Host: xxx.xxx.xxx.xxx:12346 Connection: keep-alive Cache-Control: max-age=0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36 Accept-Encoding: gzip, deflate, sdch Accept-Language: en-US,en;q=0.8,ru;q=0.6 Cookie: name=F
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-15 16:13:34