利用多个域名来存储网站资源
1. CDN緩存更方便
CDN:是構(gòu)建在網(wǎng)絡(luò)之上的內(nèi)容發(fā)布網(wǎng)絡(luò),依靠部署在各地的邊緣服務(wù)器,通過中心平臺(tái)的負(fù)載均衡、內(nèi)容發(fā)布、調(diào)度等功能模塊,是用戶就近獲取所需內(nèi)容,降低網(wǎng)絡(luò)擁塞,提高用戶訪問響應(yīng)速度和命中率。CDN的關(guān)鍵技術(shù)主要是內(nèi)容存儲(chǔ)和分布技術(shù)。簡單來說,CDN主要用來使用戶就近獲取資源。
2. 突破瀏覽器并發(fā)限制
同一時(shí)間針對(duì)同一域名下的請(qǐng)求有一定數(shù)量限制,超過限制數(shù)目的請(qǐng)求會(huì)被阻塞。大多數(shù)瀏覽器的并發(fā)數(shù)量都控制在6以內(nèi)。有些資源的請(qǐng)求時(shí)間很長,因而會(huì)阻塞其他資源的請(qǐng)求。因此,對(duì)于一些靜態(tài)資源,如果放到不同的域名下面就能實(shí)現(xiàn)與其他資源的并發(fā)請(qǐng)求。
因而后來衍生了domain dash來加大并發(fā)數(shù),但是過多的域名會(huì)使DNS解析負(fù)擔(dān)加重,因此一般控制在2-4個(gè)。
對(duì)于圖片資源的加載,利用css sprites技術(shù),結(jié)合background的定位在同一張圖片中加載多個(gè)圖片,這也是減少并發(fā)數(shù)量的一種常用方法。
3. 節(jié)約cookie帶寬
用戶的每次訪問,都會(huì)帶上自己的cookie ,挺大的。假如twitter 的圖片放在主站域名下,那么用戶每次訪問圖片時(shí),request header 里就會(huì)帶有自己的cookie ,header 里的cookie 還不能壓縮,而圖片是不需要知道用戶的cookie 的,所以這部分帶寬就白白浪費(fèi)了。
寫主站程序時(shí),set-cookie 也不要set 到圖片的域名上。
4. 節(jié)約主域名的連接數(shù),優(yōu)化頁面響應(yīng)速度
因?yàn)槔系臑g覽器(IE6是典型),針對(duì)同一個(gè)域名只允許同時(shí)保持兩個(gè)HTTP連接。將圖片等資源請(qǐng)求分配到其他域名上,避免了大圖片之類的并不一定重要的內(nèi)容阻塞住主域名上其他后續(xù)資源的連接(比如ajax請(qǐng)求)。
5. 防止不必要的安全問題
對(duì)于UGC的內(nèi)容和主站隔離,防止不必要的安全問題( 上傳js竊取主站cookie之類的) 。正是這個(gè)原因要求用戶內(nèi)容的域名必須不是自己主站的子域名,而是一個(gè)完全獨(dú)立的第三方域名。
總結(jié)
以上是生活随笔為你收集整理的利用多个域名来存储网站资源的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: arr.sort的排序原理
- 下一篇: js中的几种跨域方法