22

我在谷歌的文档中阅读了他们新的pagespeed插件,他们建议使用无cookie 域来提高性能:

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

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

4

5 回答 5

24

Google 文章的建议是,您从另一个域提供所有静态内容,而该服务域最初未设置 cookie。

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

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

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

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

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

于 2009-06-05T15:39:57.353 回答
9

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

这就是谷歌所说的。无需配置,只需整理即可。

于 2009-06-05T17:43:24.753 回答
6

AFAIK 谷歌分析为所有子域设置 cookie,所以如果您使用分析将没用?

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

希望谷歌能够改变他们的分析 cookie,这样我们就不必购买新域来提供无 cookie 的内容。

于 2009-06-10T13:07:18.047 回答
3

AFAIK 谷歌分析为所有子域设置 cookie,所以如果您使用分析将没用?

于 2009-06-07T05:16:33.187 回答
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();

这就是谷歌对此的看法:谷歌分析和Cookies

于 2010-06-10T22:05:18.703 回答