¿Cómo se pasan las cookies en el protocolo HTTP?

¿Cómo se pasan las cookies en el protocolo HTTP?

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 lo siguiente en su encabezado de solicitud.

Cookie: nombre = valor

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

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

Además de lo que está escrito en otras respuestas, hay otros detalles relacionados con la ruta de las cookies, la edad máxima de las cookies, si está asegurado o no también en el encabezado de respuestas de Set-Cookie. Por ejemplo:

Set-Cookie: name = value [ ; expires= ; expires= fecha ] [ ; domain= ; domain= dominio ] [ ; path= ; path= ruta ] [ ; secure ; secure ]


Sin embargo, el cliente no pasa todos estos detalles al servidor cuando realiza 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 al artículo de Nicholas C. Zakas, explicó las cookies HTTP .

crear un 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 haz ejecutable y ejecuta así.

 ./resp | nc -l -p 12346 

abra el navegador y explore la URL: http: // localhost: 1236 verá el valor de la cookie que envía el navegador

     [aaa @ bbbbbbbb] $ ./resp |  nc -l -p 12346
     GET / HTTP / 1.1
     Anfitrión: xxx.xxx.xxx.xxx:12346
     Conexión: keep-alive
     Cache-Control: max-age = 0
     Aceptar: texto / html, application / xhtml + xml, application / xml; q = 0.9, image / webp, * / *; q = 0.8
     Solicitudes de actualización inseguras: 1
     User-Agent: Mozilla / 5.0 (Windows NT 6.1) AppleWebKit / 537.36 (KHTML, como Gecko) Chrome / 49.0.2623.112 Safari / 537.36
     Aceptar-Codificación: gzip, desinflar, sdch
     Accept-Language: en-US, en; q = 0.8, ru; q = 0.6
     Cookie: nombre = F