Як встановити домен, який не містить файлів cookie?


24

Я читав, що найкраще подавати статичний вміст (css, javascript тощо) з домену без файлів cookie або субдомену для кращої продуктивності. Я припускаю, що домен за замовчуванням не містить файлів cookie. Як вказати, що я не хочу використовувати файли cookie?


3
Така річ насправді не має значення, якщо ви не обслуговуєте тисячі сторінок на годину або тисячі сторінок в хвилину.

"Незважаючи на те, що ми робимо все можливе, щоб зменшити розмір файлів cookie, наше використання Google Analytics приводить середній розмір файлів cookie до 1 кілобайт." Корисне та супутнє - chrishateswriting.com/post/68794699432/small-things-add-up
mvark

Відповіді:


26

Коли такі речі, як YSlow і Page Speed, говорять вам про те, щоб створити домени без файлів cookie, те, що вони насправді мають на увазі, - це подання медіа з домену, де ви не налаштовували жодного або не встановлювали жодного (у всьому світі) в минулому. Іноді це може бути досягнуто за допомогою піддоменів, таких як media.domain.com, або static.domain.com, якщо ви встановите файл cookie, domain.comякий стосується домену в цілому - cookie для *.domain.com-, цей файл cookie буде відправлений клієнтом назад на сервер на кожен запит для кожного домену, пов’язаного з domain.com. Сюди входять усі піддомени.

Глобальне cookie стає проблемою, якщо ви вирішите відмовитись від використання www.своїх доменів. Без певного піддомену, для якого можна встановити файл cookie, усі файли cookie повинні бути налаштовані для *.domain.comтого, щоб вони працювали.

Ця глобальна проблема з файлами cookie, чому ви побачите статичні медіа-файли, розміщені в таких місцях, як ytimg.comна YouTube. ytimg.comніколи не подаватиме динамічний контент, який може встановлювати файли cookie, а значить, жоден файл cookie не буде відправлений з клієнта назад на сервер, коли ці домени входять до HTTP-запитів.

Якщо ви впевнені, що у вас ніколи не буде встановлено файл cookie, *.domain.comви можете використовувати піддомен для своїх потреб. Майте на увазі, що більшість часу, якщо ви інтегруєтесь з іншим сайтом або службою через Javascript, вони встановлять кукі-файли глобального домену.

У Apache (і я впевнений, що кожен інший веб-сервер) ви можете встановити або зняти заголовки, перш ніж відповіді на запити. Це не вирішить проблему надсилання клієнтом файлу cookie на ваш сервер, але він убереже ваші домени від коли-небудь надсилання або початкового налаштування файлів cookie. Проблема лише в тому випадку, якщо ви подаєте вміст, який не є статичним для ваших доменів, що не містять файли cookie, що перемагає їх призначення.

Header unset Cookie
Header unset Set-Cookie 

Це скине заголовки для існуючих файлів cookie та створення нових файлів cookie. Знову ж таки, проблема лише якщо ви подаєте вміст зі своїх статичних доменів, який потенційно може встановити файл cookie. Розмістіть це у конфігурації свого веб-сайту або virtualhost (яка залежно від вашої ОС, сервера та версії може бути будь-якою кількістю місць).


"Проблема лише в тому випадку, якщо ви подаєте вміст, який не є статичним для ваших доменів, що не містять файли cookie, що перемагає їх призначення." - чому саме? Немає нічого про динамічно створений вміст, який по суті потребує файлів cookie.

1
Я не сказав, що подання динамічного вмісту зі свого статичного домену по суті нічого не задає. Я сказав, що файли cookie будуть проблемою, якщо ви подаєте динамічний вміст, який встановлює файли cookie зі вашого статичного домену. Призначення статичного домену полягає в обслуговуванні вмісту, який не потребує взаємодії: зображення, css, js тощо. Динамічний контент - саме там слід встановити файли cookie - не повинен обробляти статичний домен.
Брайсон

6

Як вказати, що я не хочу використовувати файли cookie?

Це не про те, що вам потрібно зробити , щоб мати Cookieless домен - це більше про те, що вам потрібно , щоб НЕ робити ... Для того, щоб мати Cookieless домен , ви повинні переконатися , що додаток працює на цьому домені не встановлює куки . Зазвичай це означає не мати входу, не мати аналітики Google, не мати сеансів, тобто просто обслуговувати медіа та більше нічого. Очевидно, це залежить від вашої установки.

Однією з помилок, яку я нещодавно зробив, було те, що я не робив різниці між доменом і субдоменом. Я почав обслуговувати всі свої засоби масової інформації, http://media.example.comдумаючи, що це домен, який не містить файлів cookie, але насправді це піддомен, і я знайшов багато моїх файлів cookie з головного сайту, http://www.example.comде він встановлюється на рівні домену, і тому забруднює мій субдомен, який нібито не містить cookie . Ось посилання на те, як я вирішив цю проблему: /server/160210/nginx-serve-static-content-from-a-cookieless-domain


2
Файли cookie від www.example.net не надсилатимуться static.example.net, але файли cookie від example.netбуде. Рішення полягає в переадресації example.netна www.example.net.
TRiG

3

Як вказати, що я не хочу використовувати файли cookie?

Вам не потрібно вказувати, що ви не хочете використовувати файли cookie, ви просто не використовуєте їх.


3
Не завжди варіант. Функції інтеграції Javascript з інших сайтів зазвичай встановлюють глобальні файли cookie для домену, хочете ви їх чи ні.
Брайсон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.