Как настроить домен без файлов cookie?

24

Я читал, что лучше обслуживать статический контент (css, javascript и т. Д.) Из домена или субдомена без файлов cookie для повышения производительности. Я предполагаю, что домен не является cookie-файлом по умолчанию. Как мне указать, что я не хочу использовать куки?

BENV
источник
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.ваших доменов. Без определенного субдомена, для которого нужно установить куки, все куки должны быть установлены, *.domain.comчтобы они работали.

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

Если вы уверены, что для вас никогда не будет настроен файл cookie, *.domain.comвы можете использовать поддомен для своих нужд. Имейте в виду, что в большинстве случаев, если вы интегрируетесь с другим сайтом или службой через Javascript, они будут устанавливать глобальные доменные куки.

В Apache (и я уверен, что на любом другом веб-сервере) вы можете устанавливать или отменять заголовки, прежде чем на запросы будут получены ответы. Это не решит проблему отправки клиентом куки на ваш сервер, но не позволит вашим доменам когда-либо отправлять или устанавливать куки-файлы. Проблема только в том случае, если вы обслуживаете контент, который не является статичным, из ваших доменов без файлов cookie, что противоречит их назначению.

Header unset Cookie
Header unset Set-Cookie 

Это приведет к сбросу заголовков для существующих файлов cookie и для создания новых файлов cookie. Опять же, проблема возникает только в том случае, если вы предоставляете контент со статических доменов, который потенциально может установить cookie. Поместите это в конфигурацию вашего сайта или виртуального хоста (которая в зависимости от вашей ОС, сервера и версии может быть любым количеством мест).

Брайсон
источник
«Проблема только в том случае, если вы обслуживаете контент, который не является статичным, из ваших доменов без файлов cookie, что противоречит их цели». - почему именно? В динамически генерируемом контенте нет ничего, что по своей природе требует куки.
1
Я не говорил, что подача динамического контента из вашего статического домена по своей сути что-то устанавливает. Я сказал, что файлы cookie будут проблемой, если вы предоставите динамический контент, который устанавливает файлы cookie со статического домена. Назначение статического домена состоит в том, чтобы обслуживать контент, который не требует взаимодействия: изображения, CSS, JS и т. Д. Динамический контент, в котором должны быть установлены ваши файлы cookie, не должен обрабатываться статическим доменом.
Брайсон
6

Как мне указать, что я не хочу использовать куки?

Это не о том, что вам нужно сделать , чтобы иметь Cookieless домен - это больше о том, что вам нужно , чтобы не делать ... Для того, чтобы иметь Cookieless домен , вы должны убедиться , что приложение работает на этом домене не устанавливает куки . Обычно это означает, что у вас нет логинов, нет Google Analytics, нет сессий - то есть просто подача медиа и ничего больше. Очевидно, это зависит от вашей настройки.

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

Том
источник
2
Печенье от www.example.net не будет отправлено static.example.net, но печенье от example.net. Решение состоит в том, чтобы перенаправить example.netна www.example.net.
TRiG
3

Как мне указать, что я не хочу использовать куки?

Вам не нужно указывать, что вы не хотите использовать куки, вы просто не используете их.


источник
3
Не всегда вариант. Интеграция функций Javascript с других сайтов обычно устанавливает глобальные куки для домена, хотите вы этого или нет.
Брайсон