Как файлы cookie передаются в HTTP-протоколе?

Как файлы cookie передаются в HTTP-протоколе?

Ответ 1

Сервер отправляет в заголовке ответа следующее, чтобы установить поле cookie.

Set-Cookie: имя = значение

Если есть набор файлов cookie, браузер отправляет в заголовок запроса следующее.

Cookie: имя = значение

Более подробную информацию см. в HTTP Cookie в Википедии.

Ответ 2

Cookies передаются как заголовки HTTP, как в запросе (клиент → сервер), так и в ответе (сервер → клиент).

Ответ 3

Помимо того, что он написал в других ответах, другие детали, связанные с пустым файлом cookie, максимальный возраст файла cookie, независимо от того, был он защищен или нет, также передаются в заголовке ответа Set-Cookie. Например:

Set-Cookie: имя = значение [; expires= дата] [; domain= домен] [; path= путь] [; secure]


Тем не менее, не все эти данные передаются на сервер клиентом при следующем HTTP-запросе.

Вы также можете установить флаг HttpOnly в конце вашего файла cookie, указав, что ваш файл cookie httponly и не должен разрешаться к доступу, в скриптах по javascript-коду. Это помогает предотвратить атаки, такие как захват сеанса.

Для получения дополнительной информации см. RFC 2109. Также взгляните на Статья Николаса К. Закаса, HTTP файлы cookie.

Ответ 4

создать пример script как resp:

<Предварительно > <код > #!/Bin/Баш HTTP_CODE = 200 мим = текст /html echo -e "HTTP/1.1 $http_code OK\r" echo "Content-type: $mime" эхо echo "Set-Cookie: name = F" Код >

затем выполните исполняемый файл и выполните его.

 ./resp | nc -l-p 12346
Код>

открыть браузер и просмотреть URL-адрес: http://localhost: 1236 вы увидите значение Cookie, которое отправляется браузером

<Предварительно >   [aaa @bbbbbbbb] $./resp | nc -l-p 12346   GET/HTTP/1.1   Хост: xxx.xxx.xxx.xxx:12346   Подключение: сохранить жизнь   Cache-Control: max-age = 0   Accept: text/html, application/xhtml + xml, application/xml; q = 0.9, image/webp, */*; q = 0.8   Обновить-Небезопасно-Запросы: 1   User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, например, Gecko) Chrome/49.0.2623.112 Safari/537.36   Accept-Encoding: gzip, deflate, sdch   Accept-язык: en-US, en; q = 0.8, ru; q = 0.6    Cookie: name = F