Будут ли cookie доступны, когда на стороне клиента отключен JavaScript? - PullRequest
2 голосов
/ 19 марта 2010

Это один из вопросов, которые мне задали в сегодняшнем интервью,

но я не уверен в ответе.

Ответы [ 5 ]

2 голосов
/ 19 марта 2010

Да. Файлы cookie - это технология http браузера / сервера, совершенно не связанная со сценариями на стороне клиента.

Основное (или, по крайней мере, первоначальное) использование файлов cookie - это установить значение на стороне сервера и прочитать его на стороне сервера.

Клиенты могут отключить куки в своем браузере.

1 голос
/ 19 марта 2010

Cookies - это просто типичный HTTP-заголовок. Всякий раз, когда ваш браузер запрашивает какой-либо веб-сайт, он отправляет заголовки запроса, например:

GET /questions/2476288/will-cookie-be-available-wh... 
Host: stackoverflow.com
....
Accepted-Languages: ....
Accepted-Encoding: ....
....
Cookies: cookie1=value1;cookie2=value2

Итак, как вы можете видеть, куки являются частью протокола HTTP, а не JS, однако JS может создавать / удалять / изменять куки. Другими словами: куки независимы от JS.

1 голос
/ 19 марта 2010

Ответ - да. Пуленепробиваемый вывод ниже:

Файл cookie отправляется в виде заголовка HTTP. через веб-сервер в веб-браузер и затем отправлено обратно без изменений браузер каждый раз, когда он получает доступ к этому сервер.


Настройка печенья

Для доступа к странице http://www.example.org/index.html браузеры подключаются к серверу www.example.org, отправляя ему запрос, похожий на следующий:

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

Сервер отвечает, отправляя запрошенную страницу с предшествующим аналогичным пакетом текста, который называется «HTTP-ответ». Этот пакет может содержать строки, запрашивающие браузер на сохранение файлов cookie:

HTTP/1.1 200 OK
Content-type: text/html
Set-Cookie: name=value

(content of page)

Сервер отправляет строку Set-Cookie, только если сервер желает, чтобы браузер сохранил cookie. Set-Cookie - это запрос к браузеру сохранить строку name=value и отправить ее обратно во всех будущих запросах на сервер. Если браузер поддерживает cookie-файлы, и cookie-файлы включены, каждый последующий запрос страницы к тому же серверу будет включать cookie-файлы. Например, браузер запрашивает страницу http://www.example.org/spec.html, отправляя серверу www.example.org запрос, подобный следующему:

GET /spec.html HTTP/1.1
Host: www.example.org
Cookie: name=value
Accept: */*

Источник и дальнейшее чтение: Википедия: HTTP Cookie

0 голосов
/ 19 марта 2010

Если файл cookie установлен с использованием серверного сценария, веб-сайт сможет установить файл cookie, даже если Javascript отключен.

PHP Пример:

setcookie('test', 'test');

Затем куки отправляются на сайт в виде заголовка HTTP, если они не отключены в браузере. Не имеет значения, отключен ли Javascript.

0 голосов
/ 19 марта 2010

Да (хотя вы не сможете использовать JS для установки или чтения)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...