1. 程式人生 > >Cookie常用的優化方式

Cookie常用的優化方式

coo mil use 常用 速度 key-value path serve 靜態資源

  我們知道,對於每一個http請求,無論是動態的網頁aspx,還是jsp還是/user/add這種MVC模式的URL,還是CSS或者JS文件,每一個http請求都會帶著在硬盤上存有的跟這個域相關存有的cookie信息。越來越多的cookie導致請求頭越來越大。那麽應該如何去優化呢?

  cookie存儲在客戶端,伴隨著HTTP請求在瀏覽器和服務器之間傳遞。除了key-value外,cookie還有max-age,path,domain和httponly屬性。

  httponly屬性標識一個客戶端JavaScript能否操作該cookie;

  max-age屬性表示緩存時間,單位為秒;

  domain設置可以訪問該Cookie的域名;

  path設置該domain下可以訪問該Cookie的路徑,默認為/。

  cookie優化方案:

  1、去除沒有必要的cookie,如果網頁不需要cookie就完全禁掉。

  2、將cookie的大小減到最小。

  由於cookie在訪問對應域名下的資源時都會通過HTTP請求發送到服務器,因此,減小cookie的大小,能減小HTTP請求報文的大小,提高響應速度。

  比如:對於服務器端完全不關心的數據,比如說一個網站把一個用戶在網站閱讀進度存儲在瀏覽器本地。這時候我們可以采取存儲在cookie中,但是這是服務器端不關心的數據,但是每次都會放到http頭部中,造成冗余。這時候我們可以采取其他的緩存存儲辦法,比如說localStorage。

  再比如:即使是有一些必須要存儲在cookie中的參數,我們也可以通過合並來減少鍵值對的數量。

  3、設置合適的過期時間,較長的過期時間可以提高響應速度。

  給cookie添加一個過期時間,則cookie信息將存儲到硬盤上,即使瀏覽器退出Cookie還會存在。只要Cookie未被清除且還在過期時間內,該Cookie就會在訪問對應域名時發送給服務器。

  4、通過使用不同的domain減少cookie的使用。

  cookie在訪問對應域名下的資源時都會通過HTTP請求發送到服務器,但在訪問一些資源,如js,css和圖片時,大多數情況下cookie是多余的,可以使用不同的domain來存儲這些靜態資源,這樣訪問這些資源時就不會發送多余的cookie,從而提高響應速度。

  cookie隔離:如果靜態文件都放在主域名下,那靜態文件請求的時候都帶有的cookie的數據提交給server的,非常浪費流量,所以不如隔離開。因為cookie有域的限制,因此不能跨域提交請求,故使用非主要域名的時候,請求頭中就不會帶有cookie數據,這樣可以降低請求頭的大小,降低請求時間,從而達到降低整體請求延時的目的。同時這種方式不會將cookie傳入Web Server,也減少了Web Server對cookie的處理分析環節,提高了webserver的http請求的解析速度。

Cookie常用的優化方式