我正在谷歌的文档中阅读新的pagespeed插件,他们建议使用cookieless domains来提高性能:
静态内容(例如图像,JS和CSS文件)不需要附带cookie,因为没有用户与这些资源交互。您可以通过从不提供cookie的域提供静态资源来减少请求延迟。
有人知道如何在IIS中执行此操作吗?
答案 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