DNS尋找, 網域名稱, 和Cookies

來源:互聯網
上載者:User

我的網站網域名稱是www.yining.org,有個頁面(比如就這篇blog entry)帶有一張圖片,其src為:/img/camel.gif,那麼它的URL就是:”http://www.yining.org/img/camel.gif”。如果這個版面設定了cookie(比如為了記錄留言者的ID和網站地址等),cookie的範圍名自動為www.yining.org,那麼每次訪問該頁的時候,因為URL的網域名稱部是www.yining.org,那麼瀏覽器都會帶著cookie對該圖片發起請求,即使一路上的web cache有www.yining.org/img/camel.gif的記錄,也依然要到我的伺服器(the origin server),而不是從中間的web cache返回 - 因為帶cookie的請求都可能根據不同cookie的值而返回不同的response。

但是這對許多靜態資源(圖片, css, 和javascript)來說不是最理想的,因為不論cookie是什麼,它們的response裡都是同樣的內容,對它們的請求沒有必要每次都回到origin server。其次,因為不同web cache對帶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(因為作用的網域名稱現在不一樣了),這樣就能更好地利用web cache緩衝和伺服器的效能。我請教過一位曾經在NetAppliance(最大的web cache廠商)工作的同學,據他說根據經驗,帶和不帶cookie之間的差別有可能是20%甚至更大。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.