DNS查找, 域名, 和Cookies
更新時間:2008年07月25日 10:10:43 作者:
減少DNS查找能夠縮短頁面反應時間,但是所有網(wǎng)站資源都只用一個域名,從而把DNS查找減少到一個,也不是最好的辦法。不僅僅因為減少的平行下載的可能,更因為Web Cache對帶與不帶cookie的請求和返回的處理不同。
我的網(wǎng)站域名是www.yining.org,有個頁面(比如就這篇blog entry)帶有一張圖片,其src為:/img/camel.gif,那么它的URL就是:”http://www.yining.org/img/camel.gif”。如果這個頁面設置了cookie(比如為了記錄留言者的ID和網(wǎng)站地址等),cookie的作用域名自動為www.yining.org,那么每次訪問該頁的時候,因為URL的域名部是www.yining.org,那么瀏覽器都會帶著cookie對該圖片發(fā)起請求,即使一路上的web cache有www.yining.org/img/camel.gif的記錄,也依然要到我的服務器(the origin server),而不是從中間的web cache返回 - 因為帶cookie的請求都可能根據(jù)不同cookie的值而返回不同的response。
但是這對許多靜態(tài)資源(圖片, css, 和javascript)來說不是最理想的,因為不論cookie是什么,它們的response里都是同樣的內容,對它們的請求沒有必要每次都回到origin server。其次,因為不同web cache對帶cookie的請求支持不同,即使有的cache能夠緩存帶cookie的response,但是1)不是大多數(shù)的cache都能做到這點,2)大多數(shù)的cache都缺省緩存不帶cookie的response。因此最好的辦法就是使用不同的域名把靜態(tài)資源隔離開。雖然cookie的path屬性也能做到這點,但是畢竟限制太多,不如使用專門的域名靈活。
所以應該盡量把所有靜態(tài)的對象和動態(tài)頁面的域名分開,更嚴謹?shù)卣f,是把不需要讀寫客戶端cookie的服務器資源與需要讀寫cookie的程序分開到不同的域名。比如我可以設置另一個域名static.yining.org,在引用該圖片的<img>里的src屬性改為”http://static.yining.org/img/camel.gif”,那么當訪問首頁的時候,瀏覽器就不會帶著cookie(因為作用的域名現(xiàn)在不一樣了),這樣就能更好地利用web cache緩存和服務器的性能。我請教過一位曾經(jīng)在NetAppliance(最大的web cache廠商)工作的同學,據(jù)他說根據(jù)經(jīng)驗,帶和不帶cookie之間的差別有可能是20%甚至更大。
相關文章
生成HTML靜態(tài)網(wǎng)址 [教你如何在IIS下安裝rewrite]
生成HTML靜態(tài)網(wǎng)址 [教你如何在IIS下安裝rewrite]...2007-03-03Discuz! 6.1 - 發(fā)送HTML格式電子郵件
Discuz! 6.1發(fā)送的電子郵件默認是text/plain純文本格式,如果需要發(fā)送HTML格式郵件,需要對/include/sendmail.inc.php文件應用如下補丁2008-09-09網(wǎng)站關鍵字設置技巧放松了比較不錯的關鍵詞設置方法
網(wǎng)站關鍵字設置技巧放松了比較不錯的關鍵詞設置方法...2007-11-11火車頭 V3_Hi.Baidu.Com_2.0 百度空間發(fā)布模塊 下載
火車頭 V3_Hi.Baidu.Com_2.0 百度空間發(fā)布模塊 下載...2007-04-04