原来还有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。
一开始,我采用的是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。
相关文章推荐
- 原来还有cookie-free domain这么回事
- 原来还有cookie-free domain这么回事
- 浅析cookie-free domain这么回事
- 网友亲身经历的数据勒索事件_原来还有这么多种姿势长见识了!
- 垃圾回收原来是这么回事
- 原来JavaScript的闭包是这么回事
- "事务"原来是这么回事
- 这些整整一百个网站你要是没进过,那你就OUT了!!!一天一个够你看了!!!第九十六个够强悍,原来还有这么专业的人肉搜索网站
- 原来多线程中的join()是这么回事
- 英文输入法下按shift +2出来的 是"符号。SHIFT+3 是£符号,原来是这么个回事
- jquery原来是这么回事
- onsubmit事件 原来是这么回事
- 【Java】垃圾回收原来是这么回事
- 原来多线程中的join()是这么回事
- Android零基础入门第84节:引入Fragment原来是这么回事
- 原来是这么回事!
- 原来vc.net和vc是这么回事
- Linux原来也就这么回事
- Android零基础入门第84节:引入Fragment原来是这么回事
- Android零基础入门第84节:引入Fragment原来是这么回事