如何使用无Cookie域设置IIS以提高性能?

时间:2009-06-05 15:22:48

标签: iis cookies cookieless

我正在谷歌的文档中阅读新的pagespeed插件,他们建议使用cookieless domains来提高性能:

  

静态内容(例如图像,JS和CSS文件)不需要附带cookie,因为没有用户与这些资源交互。您可以通过从不提供cookie的域提供静态资源来减少请求延迟。

有人知道如何在IIS中执行此操作吗?

5 个答案:

答案 0 :(得分:24)

Google文章建议您提供来自其他域的所有静态内容,其中Cookie最初不是由该服务域设置的。

Cookie以两种方式设置 - 通过会话cookie(例如通过ASP或ASP.NET请求)或由您的应用程序明确设置。

这些将在设置cookie的域的每个后续请求中回发到服务器(无论请求是针对静态还是动态内容),从而增加请求有效负载。

通过使用第二个域来提供静态内容(HTML,CSS,图像等),您正在做的是做出无cookie请求,因为该域的首位不会设置初始cookie。

在IIS中,您的应用程序,ISAPI筛选器或ISAPI扩展将添加cookie。如果您的IIS服务器没有拦截静态内容请求(因为这通常由内核模式http.sys驱动程序处理),则不会将任何cookie添加到响应中。它只是在请求管道中进一步发挥作用。

所以基本上没有办法在IIS中显式配置无cookie域。

答案 1 :(得分:9)

如果您只是将所有静态资源放入例如static.mysite.com,并且如果您从未在该域中设置任何cookie,那么在从静态域中检索资源时,浏览器将永远不会发送cookie。

这就是谷歌所说的。没有什么可以配置,只是为了组织。

答案 2 :(得分:6)

  

AFAIK谷歌分析为所有子域设置cookie,因此如果您使用分析,它将毫无用处?

我也经历过这种情况,你必须完全使用不同的域来避免设置分析/ adsense cookie。使用static.yourdomain.com不会削减它。

以下是希望Google更改其分析Cookie,以便我们不必全部购买新域来提供无Cookie内容。

答案 3 :(得分:3)

AFAIK谷歌分析为所有子域设置cookie,因此如果您使用分析,它将毫无用处?

答案 4 :(得分:1)

以下是使用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