2010-08-12 22 views

Respuesta

222

El servidor envía lo siguiente en su encabezado de respuesta para establecer un campo de cookie.

Set-Cookie:nombre=valor

Si hay un conjunto de cookies, el navegador envía la siguiente solicitud en su cabecera.

Cookie:nombre=valor

vea el artículo HTTP Cookie en Wikipedia para obtener más información.

+0

¿Es cierto que la cookie solo funciona con el verbo GET/POST, pero no CONNECT? – PerlDev

+5

@PerlDev No hay nada que pueda ver en [rfc2109] (http://tools.ietf.org/html/rfc2109) que diga que no debería funcionar con solicitudes que no sean GET/POST, pero sospecho que el navegador y las implementaciones del servidor pueden no implementarlo en esos casos. – deinst

21

Las cookies se pasan como encabezados HTTP, tanto en la solicitud (cliente -> servidor), como en la respuesta (servidor -> cliente).

+0

sí se pasan en los encabezados, eso es (^ .. ^) –

+0

por lo que en cualquier solicitud que se realice, se envían todas las cookies ipso facto ? – BKSpurgeon

20

Aparte de lo que está escrito en otras respuestas, otros detalles relacionados con la ruta de cookie, la edad máxima de la cookie, si está asegurado o no también pasado en el encabezado de respuesta Set-Cookie. Por ejemplo:

Set-Cookie:nombre=valor [; expires=fecha] [; domain=dominio] [; path=ruta] [; secure]


Sin embargo, no todos estos detalles son devueltos al servidor por el cliente al hacer la siguiente solicitud HTTP.

También puede establecer el indicador HttpOnly al final de su cookie, para indicar que su cookie es httponly y no debe permitirse el acceso a ella, en scripts por código JavaScript. Esto ayuda a prevenir ataques como el secuestro de sesión.

Para obtener más información, vea RFC 2109. También eche un vistazo a artículo de Nicholas C. Zakas, HTTP cookies explained.

12

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 de esta manera.

./resp | nc -l -p 12346 

navegador abierto y navegar URL: http://localhost:1236 verá valor de la cookie que es enviado por el explorador

 
    [[email protected] ]$ ./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 
+1

¿Qué sucede si hay varias cookies? ¿Están separados por comas? –

+0

creo que están configurados como una nueva cookie. Cookie: name = F Cookie: name = A – Fix3r

Cuestiones relacionadas