您的位置:首页 > 大数据 > 人工智能

原来还有cookie-free domain这么回事

2012-04-18 14:27 316 查看
上个星期基本上都在围着nginx转,把我维护的所有ubuntu服务器,全都用nginx替换掉apache。

一开始,我采用的是spawn-fcgi方式,后来发现php-fpm已经进入了php核心代码。遂决定改投php-fpm。

nginx + php-fpm的配置方法,基本上都是按照张宴的博客。不论是用apt-get 安装还是自己编译,都很顺利,无甚新意。

装完之后,我顺便用YSlow分析了一下网页的前端性能评级,意外地发现YSlow原来还有叫Use cookie-free domain的评分项,图虫只得了个E。

仔细看了一下cookie-free domain的解释:在请求下载静态小图片、静态小文件的时候,浏览器会把它当成普通请求一样,在request的header信息里附加cookie信息。

但实际上,99.99%的静态小图片、静态小文件都需要知道任何cookie信息。如果每个header都附加1kB的cookie,那么对于一个有50个小文件的复杂网页来讲,就白白增加了50kB的传输量。

为了避免让浏览器发送这些无用的cookie信息,在服务器端做设置都是没有用的,因为这浏览器端主动发送的。只有通过使用另一个不存在cookie的域名,才能让浏览器不发送cookie信息。

php在默认情况下,会给当前的域名,如:example.com域名设置cookie,这种情况下,只要把静态文件放在static.example.com这样的子域名上就可以让浏览器不发送cookie了。

但是如果php设置了泛域名的cookie,比如.example.com,那么二级域名是没有用的,必须采用另一个顶级域名,才能避免cookie发送。

图虫已经设置了泛域名的cookie,因此必须采用另一个顶级域名。于是我把所有的静态文件,迁移到了static.tuchong.net,从此以后用static.tuchong.net提供静态小文件,从而实现cookie-free domain。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: