У чому різниця між 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.
Наприклад, якщо значенням атрибута Домену є "example.com", агент користувача буде включати файл cookie в заголовок Cookie під час надсилання HTTP-запитів до example.com, www.example.com та www.corp.example. ком. (Зверніть увагу, що початковий% 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 без "Домен = щось" переглядає домен (= хост) без провідних крапок.
Отже, провідна крапка в chrome не відображає, чи була використана провідна крапка із сервера, але чи було в цьому файлі cookie "Домен = щось" у визначенні від сервера. (І якби це було, файл cookie також буде надісланий до субдоменів).
Принаймні так показують мої тести. Chrome повинен полегшити читання, наприклад, переглянути точний рядок, який визначав файл cookie та час його отримання.