我正在阅读Google的文档他们的新文档 Pagespeed 插件,他们建议使用 无烹饪域 提高性能:

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

有人知道如何在IIS中做到这一点吗?

有帮助吗?

解决方案

Google文章暗示,您可以从另一个域中提供所有cookie最初由该服务域设置的cookie的所有静态内容。

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

这些将在每个后续请求中发布回服务器的服务器(无论该请求是静态还是动态内容),从而增加了请求有效负载。

您要使用第二个域来提供静态内容(HTML,CSS,图像等)来做什么,因为该域名首先设置了cookie免费请求。

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

因此,基本上,没有一种方法可以明确配置IIS中的无曲奇域。

其他提示

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

这就是Google所说的。没有什么可以配置的,只能组织。

AFAIK Google Analytics(分析)为所有子域设置了cookie,因此如果您使用分析,那将是毫无用处的?

我还经历了这一点,您必须完全使用另一个域,以避免设置分析/adsense cookie。使用static.yourdomain.com不会削减它。

这是希望Google能够更改他们的分析饼干,以便我们都不需要购买新的域名来提供无曲奇的内容。

AFAIK Google Analytics(分析)为所有子域设置了cookie,因此如果您使用分析,那将是毫无用处的?

这是一个使用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分析和饼干

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top