В чем разница между local.test.com
и .local.test.com
? Скриншот взят из Chrome.
В чем разница между local.test.com
и .local.test.com
? Скриншот взят из Chrome.
Ответы:
local.test.com
будет использоваться для домена, а .local.test.com
также для поддоменов.
local.test.com
что не будет применяться к x.local.test.com
, но .local.test.com
относится и к, local.test.com
и к x.local.test.com
?
Первая точка означает, что файл cookie также действителен для поддоменов; тем не менее последние спецификации HTTP (RFC 6265) изменили это правило, поэтому современные браузеры не должны заботиться о начальной точке. Точка может понадобиться старому браузеру, реализующему устаревший RFC 2109.
Например, если значение атрибута Domain - «example.com», пользовательский агент будет включать файл cookie в заголовок Cookie при выполнении HTTP-запросов к example.com, www.example.com и www.corp.example. com. (Обратите внимание, что начальный% x2E («.»), Если он присутствует, игнорируется, даже если этот символ не разрешен, но конечный% x2E («.»), Если он присутствует, заставит пользовательский агент игнорировать атрибут. )
Из статьи Полное руководство по доменам cookie и почему префикс www делает ваш сайт безопаснее :
Вывод
Хотя определения несколько отличаются, мы можем упростить его для любой из этих реализаций следующим образом:
Другие заслуживающие внимания наблюдения:
Если в файле cookie не установлен домен, файл cookie должен соответствовать только точному имени хоста запроса. [ПРИМЕЧАНИЕ: это отличается от возврата Set-Cookie с доменом без точки!] Нет поддоменов, нет частичных совпадений. Это означает, что просто не включать атрибут домена - нельзя устанавливать пустой атрибут домена. К сожалению, Internet Explorer, похоже, рассматривает это как имя хоста вместе с любыми поддоменами .
При настройке домена в cookie безопасный вариант - поставить перед ним точку, например .erik.io. Файл cookie будет соответствовать всем поддоменам.
Установка домена cookie без предшествующей точки, например erik.io, недопустима в реализациях RFC 2109 и приведет к тому же поведению, что и с предыдущей точкой в других реализациях. Невозможно ограничить cookie конкретным явно заданным доменом без включения поддоменов.
Во всех RFC указанный домен cookie должен совпадать с текущим именем хоста при нормальном сопоставлении. Установка cookie для www.erik.io в ответе от erik.io недействительна, так как cookie с доменом www.erik.io не соответствует erik.io, первый более конкретен.
В RFC 6265 домены явно имеют нижний регистр при синтаксическом анализе заголовка Set-Cookie.
Первая точка в ".local.test.com" - это то, как Chrome просматривает файлы cookie с набором "Domain = local.test.com" (или "Domain = .local.test.com", что то же самое).
Определения Set-Cookie без "Domain = something" рассматривают домен (= хост) без начальной точки.
Таким образом, ведущая точка в chrome не отражает, использовалась ли ведущая точка с сервера, но имеет ли этот файл cookie в своем определении с сервера «Домен = что-то». (И если это так, файл cookie также будет отправлен в поддомены).
По крайней мере, это то, что показывают мои тесты. Chrome должен упростить чтение, например, просмотреть точную строку, которая определяет файл cookie и время его получения.