DNS查找, 域名, 和Cookies

时间:2021-05-19



我的网站域名是,有个页面(比如就这篇blogentry)带有一张图片,其src为:/img/camel.gif,那么它的URL就是:”http:///img/camel.gif”。如果这个页面设置了cookie(比如为了记录留言者的ID和网站地址等),cookie的作用域名自动为,那么每次访问该页的时候,因为URL的域名部是,那么浏览器都会带着cookie对该图片发起请求,即使一路上的webcache有/img/camel.gif的记录,也依然要到我的服务器(theoriginserver),而不是从中间的webcache返回-因为带cookie的请求都可能根据不同cookie的值而返回不同的response。

但是这对许多静态资源(图片,css,和javascript)来说不是最理想的,因为不论cookie是什么,它们的response里都是同样的内容,对它们的请求没有必要每次都回到originserver。其次,因为不同webcache对带cookie的请求支持不同,即使有的cache能够缓存带cookie的response,但是1)不是大多数的cache都能做到这点,2)大多数的cache都缺省缓存不带cookie的response。因此最好的办法就是使用不同的域名把静态资源隔离开。虽然cookie的path属性也能做到这点,但是毕竟限制太多,不如使用专门的域名灵活。

所以应该尽量把所有静态的对象和动态页面的域名分开,更严谨地说,是把不需要读写客户端cookie的服务器资源与需要读写cookie的程序分开到不同的域名。比如我可以设置另一个域名static.yining.org,在引用该图片的<img>里的src属性改为”http://static.yining.org/img/camel.gif”,那么当访问首页的时候,浏览器就不会带着cookie(因为作用的域名现在不一样了),这样就能更好地利用webcache缓存和服务器的性能。我请教过一位曾经在NetAppliance(最大的webcache厂商)工作的同学,据他说根据经验,带和不带cookie之间的差别有可能是20%甚至更大。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章