Как настроить IIS с доменом без файлов cookie для повышения производительности? - PullRequest
22 голосов
/ 05 июня 2009

Я читал в документации Google их новый плагин pagespeed , который они рекомендуют использовать домены без cookie для повышения производительности:

Статическое содержимое, например изображения, файлы JS и CSS, не обязательно должно сопровождаться файлами cookie, поскольку пользователь не взаимодействует с этими ресурсами. Вы можете уменьшить задержку запроса, обслуживая статические ресурсы из домена, который не обслуживает файлы cookie.

Кто-нибудь знает, как это сделать в IIS?

Ответы [ 5 ]

24 голосов
/ 05 июня 2009

В статье Google предлагается, чтобы вы передавали весь свой статический контент из другого домена, где cookie-файлы изначально не установлены этим обслуживающим доменом.

Файлы cookie устанавливаются двумя способами - с помощью файлов cookie сеанса (например, по запросам ASP или ASP.NET) или явно вашим приложением.

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

То, что вы делаете, имея второй домен для обслуживания статического контента (HTML, CSS, изображения и т. Д.), Делает запросы без файлов cookie, потому что для этого домена не будет установлен первоначальный файл cookie.

В IIS это ваше приложение, ISAPI Filter или расширение ISAPI, которое добавит cookie. Если ваш IIS-сервер не перехватывает запросы на статическое содержимое (поскольку это обычно обрабатывается драйвером http.sys режима ядра), к ответу не будут добавлены файлы cookie. Файлы cookie вступают в игру только дальше по конвейеру запросов.

Таким образом, в IIS нет способа явно настроить домены без файлов cookie.

9 голосов
/ 05 июня 2009

Если вы просто поместите все свои статические ресурсы, например, в static.mysite.com, и если вы никогда не устанавливаете какие-либо куки в этом домене, то браузер никогда не отправит куки при получении ресурса из вашего статического домена.

Это все, что говорит Google. Там нет ничего, чтобы настроить, просто организовать.

6 голосов
/ 10 июня 2009

AFAIK Google Analytics устанавливает cookie для всех поддоменов, поэтому было бы бесполезно, если вы используете аналитику?

Я также сталкивался с этим, вам бы пришлось использовать другой домен, чтобы избежать установки аналитических / adsense cookie-файлов. Использование static.yourdomain.com не поможет.

Мы надеемся, что Google изменит свои аналитические cookie-файлы, чтобы нам не приходилось покупать новые домены для обслуживания содержимого, не содержащего cookie-файлов.

3 голосов
/ 07 июня 2009

AFAIK Google Analytics устанавливает файлы cookie для всех поддоменов, поэтому было бы бесполезно, если вы используете аналитику?

1 голос
/ 11 июня 2010

Вот пример использования асинхронного кода отслеживания Google Analytics, как настроить домен для отслеживания: _gaq.push(['_setAccount', 'UA-XXXXXXX-x'],['_setDomainName', 'www.example.com'],['_trackPageview']);

Вот пример использования предыдущей версии кода отслеживания:

var pageTracker = _gat._getTracker("UA-XXXXXXX-x");
pageTracker._setDomainName("www.example.com");
pageTracker._trackPageview();

и вот что Google должен сказать по этому поводу: Google Analytics & Cookies

...