javascript — Когда cookie отправляется через HTTP-заголовок в браузер, будет ли он добавлен в клиентский браузер?

Я пытаюсь установить соединение с API. Когда я вызываю метод для этого API, он отвечает значением cookie, отправляемым через заголовки HTTP.

Будет ли этот заголовок автоматически добавлен к клиенту «мой браузер»? или мне нужно сначала проанализировать запрос и создать cookie, используя setCookie?

если он не добавляет куки автоматически, есть ли способ сделать это?

4

Решение

Он будет автоматически обрабатываться вашим http-клиентом (вам не нужно устанавливать его вручную).
Сервер должен ответить заголовком Set-Cookie (не cookie), затем клиент сохранит этот cookie и отправит его при следующих запросах.

Установка куки

Файлы cookie устанавливаются с использованием заголовка HTTP Set-Cookie, отправляемого в ответе HTTP. Этот заголовок инструктирует браузер сохранять куки и отправлять его в будущих запросах на сервер (браузер, конечно, будет игнорировать этот заголовок, если он не поддерживает куки или имеет отключенные куки).

Например, браузер отправляет свой первый запрос на домашнюю страницу сайта www.example.org:

GET /index.html HTTP/1.1
Host: www.example.org
...

Сервер отвечает двумя заголовками Set-Cookie:

HTTP/1.0 200 OK
Content-type: text/html
Set-Cookie: theme=light
Set-Cookie: sessionToken=abc123; Expires=Wed, 09 Jun 2021 10:18:14 GMT
...

HTTP-ответ сервера содержит содержимое домашней страницы сайта. Но он также инструктирует браузер установить два куки. Первый, «theme», считается cookie «сеанса», так как он не имеет атрибута Expires или Max-Age. Сеансовые куки обычно удаляются браузером, когда браузер закрывается. Второй «sessionToken» содержит атрибут «Expires», который инструктирует браузер удалять cookie в определенную дату и время.

Затем браузер отправляет еще один запрос на посещение страницы spec.html на веб-сайте. Этот запрос содержит заголовок Cookie, который содержит два файла cookie, которые сервер дал указание браузеру установить.

GET /spec.html HTTP/1.1
Host: www.example.org
Cookie: theme=light; sessionToken=abc123
...

Таким образом, сервер знает, что этот запрос связан с предыдущим. Сервер ответит, отправив запрошенную страницу и, возможно, добавив другие файлы cookie, используя заголовок Set-Cookie.

Значение cookie может быть изменено сервером путем включения заголовка Set-Cookie в ответ на запрос страницы. Затем браузер заменяет старое значение новым значением.

Значение cookie может состоять из любого печатаемого символа ASCII (! Через ~, юникод \ u007E) за исключением, и; и исключая пробелы. Имя куки исключает те же символы, что и символ =, поскольку это разделитель между именем и значением. Стандарт cookie RFC 2965 более ограничен, но не реализован браузерами.

Термин «крошка печенья» иногда используется для обозначения пары имя-значение печенья.

Файлы cookie также могут быть установлены с помощью языков сценариев, таких как JavaScript, которые запускаются в браузере. В JavaScript для этой цели используется объект document.cookie. Например, инструкция document.cookie = «температура = 20» создает файл cookie с именем «температура» и значением «20».

Увидеть страница википедии

4

Другие решения

Да, файл cookie будет добавлен в document.cookie, если только httponly Параметр устанавливается при отправке куки.

0

По вопросам рекламы [email protected]