很多网站的内容储存用多个域名的好处

来源:互联网 发布:淘宝流量突然下降了 编辑:程序博客网 时间:2024/06/10 03:15
主要是节省带宽。
问题里的“网站的内容”,其实指的是网站的图片,或者视频,或者js,css。

举例说一下:
twitter 的主站 twitter.com ,用户的每次访问,都会带上自己的cookie ,挺大的。假如twitter 的图片放在主站域名下,那么用户每次访问图片时,request header 里就会带有自己的cookie ,header 里的cookie 还不能压缩,而图片是不需要知道用户的cookie 的,所以这部分带宽就白白浪费了。
写主站程序时,set-cookie 也不要set 到图片的域名上。
在小流量的网站,这个cookie 其实节省不了多少带宽,当流量如facebook twitter 时,节省下来就很可观了。



节约cookie带宽的因素,另一个重要因素是节约主域名的连接数,从而提高客户端网络带宽的利用率,优化页面响应。因为老的浏览器(IE6是典型),针对同一个域名只允许同时保持两个HTTP连接。将图片等资源请求分配到其他域名上,避免了大图片之类的并不一定重要的内容阻塞住主域名上其他后续资源的连接(比如ajax请求)。



三个最主流的原因:
1. CDN缓存更方便
2. 突破浏览器并发限制 (你随便挑一个 G家的 url: lh4.googleusercontent.com, 把前面的 lh4换成 lh3,lh6啥的,都照样能够访问,像地图之类的需要大量并发下载图片的站点,这个非常重要。)
3. Cookieless, 节省带宽,尤其是上行带宽 一般比下行要慢。。。

还有另外两个非常规原因:
4. 对于UGC的内容和主站隔离,防止不必要的安全问题( 上传js窃取主站cookie之类的) 。
正是这个原因要求用户内容的域名必须不是自己主站的子域名,而是一个完全独立的第三方域名。

5. 数据做了划分,甚至切到了不同的物理集群,通过子域名来分流比较省事. ^_^ 这个可能被用的不多。

PS: 关于Cookie的问题,带宽是次要的,安全隔离才是主要的。
关于多域名,也不是越多越好,虽然服务器端可以做泛解释,浏览器做dns解释也是耗时间的,而且太多域名,如果要走 https的话,还有要多买证书和部署的问题,^_^。

0 0
原创粉丝点击