在Yslow等页面优化建议中常会看到一个指标“Use cookie-free domains”
原因
当浏览器请求一个静态图片时,也会一并发送此域名的Cookie,但这个Cookie对服务器完全没用,所以服务器会忽略,这就说明此情况下Cookie根本没必要通过网络传输
为了减少网络开销,就有了 cookie-free 这个概念,特别是当细碎静态文件特别多的情况下更要注意这个指标了
例如
网站域名为 abc.com,首页中有50个图片,图片的地址为 abc.com/[1-50].jpg
浏览器中设有 abc.com 的cookie,那么请求每个图片时都会带着 abc.com 的所有cookie信息
假设每个cookie的大小为 500byte,那么无效cookie所带来的网络开销就为:
500*50/1024=24K
而图片、css、js这些静态文件都有这个问题,所以无效cookie带来的影响还是不小的,值得关注
解决方法
主要有两个:
(1)设置单独的子域名
例如使用 static.abc.com 来访问静态资源文件
(2)使用完全独立的域名
例如使用 abcstatic.com 来访问静态资源文件
个人建议使用第二个方法,因为现在域名很便宜,解决得也最彻底
而第一种子域名的方式可能会产生域名污染问题,例如百度统计,据说没有设置domain的方法,我也没找到,所以这就意味着即使使用了第一种方法,每个静态资源的请求中还会带着百度统计的cookie信息