最近终于把网站的域名从裸域名更换成带有“www”的二级域名了。其实刚开始也不懂域名的选择问题,就是觉得裸域名简单,好记忆。但是接下来有一些问题无法解决,例如 DNS解析问题和cookies的域名污染问题。本文主要讲述网站所带的cookies导致域名染以及CDN加速中header信息设置会影响命中率的问题。
Cookies的域名污染问题
HTTP Coockie可以用于权限验证和个性化身份等多种用途,Coockie 中的相关信息是通过HTTP文件头来在web服务器和浏览器之间进行交流的,因此,这些信息的传输也会消耗流量、耗费时间,所以应该保持coockie尽可能的小以,减少用户的响应时间、节省流量(尤其是对流量有限制的主机用户)。
如果你的域名是www.mydomain.org,你可以在static.mydomain.org上存在静态内容。但是,如果你不是在www.mydomain.org上而是在顶级域名(裸域名)mydomain.org设置了coockie,那么所有对于static.mydomain.org的请求都会包含coockie。在这种情况下,你可以再重新购买一个新的域名以保存这些静态内容,而且要确保这个域名是无coockie的。
如果想使用一个域名,可以考虑使用 mydomain.org 还是 www.mydomain.org 作为你的一主页的问题。即,你要考虑到 coockie 带来的影响。忽略掉 www ,把裸域名作为网站的域名,会使你把 coockie 带到 *.mydomain.org 外其他的二级域名中,即使二级域名可能有静态内容,因此出于性能方面的考虑最好是使用带有 www 的子域名并且在它上面设置 coockie 。这样其他子域名就避免了来自 www二级域名所带的cookies的污染。
HTTP的header信息优化
最近,我发现自己使用 CDN 后的命中率非常非常低,而且 CDN 服务器经常回源抓取网站文件。百思不得其解。最后终于明白了,原来是 cookies 在 header 中的设置问题!因为设置中使用了 Vary:Accept-Encoding, Cookie
。
请求头中的 Cookies 可能被服务端用做输出差异化内容的依据。用户的每次请求,CDN 可能会根据 cookies 对于用户间差异回源访问,导致 CDN 服务器不断回源,到源站抓取文件和信息。因此,我果断把 Vary 中的 cookies一项忽略掉。之后,经测试,CDN 的回源率显著下降,命中率显著提高。
本文禁止住转载。任何形式转载请联系作者(时光在路上 www.timezls.com)。时光在路上保留所有权利
经过以上两方面的设置,感觉 CDN 的功效进一步提高。
有同样问题的朋友不妨试一试这样的操作。
本文禁止住转载。任何形式转载请联系作者(时光在路上 www.timezls.com)。时光在路上保留所有权利