我使用Firebug的“ 页面速度 ”扩展来尝试优化一个网站,我目前正在处理以下build议:“ 从无Cookie域提供静态内容 ”。
我为某些内容创build了一个单独的子域,以便我拥有www.example.com和images.example.com但是如何指定images.example.com是无Cookie的? 我可以强制在networking服务器(如Nginx或Apache )中使用Cookie ,或者仅仅是确保不在服务器端代码(例如PHP)中设置此域中的任何Cookie。
我之所以问这个问题,是因为“Page Speed”即使在我尝试修复之后仍然显示相同的build议 – 所以我猜想一些cookies一定会漏掉。 我在浏览器cookiesearch中看不到任何cookie,但是如果我检查资源的HTTP标头,我可以看到:
Cookie __utma=73051794.676740941.1271792323.1277710025.1277900715.20; __utmz=73051794.1271792323.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmx=73051794.00009825591030858779:3:0; __utmxx=73051794.00009825591030858779:2295429:2592000; __gads=ID=0a768e3407302ff8:T=1272608001:S=ALNI_MZ-GKhg3ETniU0TVftk0DdGyUypkQ
任何人都知道我可以停止从我的子域的cookie?
您提到的Cookie由Google Analytics设置,通常在全域范围内设置,以覆盖所有子域名。
Nginx不能让浏览器不发送任何cookie,HTTP规范中没有一部分允许web服务器说它对cookies不感兴趣,所以浏览器总是发送它们。 这个build议真正重要的许多最大的网站使用静态文件完全独立的域 – 例如yahoo的yimg.com。
这里是一个有用的文章,也解决了如何使用无cookie的子域名: http ://www.ravelrumba.com/blog/static-cookieless-domain/。
为了build立一个无Cookie的子域名,你必须确保你的服务器或应用程序只为www.example.com而不是顶级example.com设置cookies。 (设置在顶级域名中的Cookie也适用于所有子域名。)当然,这取决于您的具体设置。 但是两个常见的Cookie设置者是Google Analytics和WordPress。 对于Google Analytics,您必须将“
_setDomainName”值设置为您的www域。 喜欢这个:
_gaq.push( ['_setAccount', 'UA-xxxxxxx-1'], ['_setDomainName', 'www.example.com'], ['_trackPageview'] );