HTTP緩衝控制 總結

來源:互聯網
上載者:User

標籤:前端   content   control   1.0   max-age   16px   交流   idt   ges   

  

一、HTTP回應標頭、要求標頭中與緩衝控制的相關欄位

二、一個頁面訪問緩衝的流程

三、三種重新整理的實際操作

四、如何設定緩衝

 

一、HTTP回應標頭、要求標頭中與緩衝控制的相關欄位

  瀏覽器向伺服器發起請求後,伺服器的回應標頭中一般會包含以下與緩衝相關的欄位:

  1.Expires:到期時間。(HTTP 1.0的欄位)

  瀏覽器再次發起請求的時候會先檢查是否超過這個時間,如果沒超過則直接從緩衝中讀取資訊。但是如果瀏覽器的時間和伺服器的時間不一致,就會出現問題。

  2.Cache-control:max-age=6000(毫秒)/no-cache/no-store/private/public (HTTP 1.1的欄位)

  同時設定Expires和max-age的情況下,使用max-age

  3.Last-Modified:最後一次修改時間。

  4.Etag:被請求變數的實體標記。它的計算是通過伺服器端的演算法得來的,優先順序高於Last-Modified。

 

  瀏覽器再次向伺服器發起請求,要求標頭中一般會包含以下與緩衝相關的欄位:

  1.Cache-control:max-age=0

  2.If-Modified-Since:把回應標頭中的Last-Modified發至服務端與被請求資源的最後修改時間進行對比

   若最後修改時間大於If-Modified-Since,則表明資源已更改,響應整個資源返回200,否則返回304。

  3.If-None-Match:把回應標頭中的Etag發至服務端與服務端的實體標記進行對比

   若相同,則表明資源未更改返回304,否則響應整個資源返回200。

 

  (Etag/If-None-Match的優先順序高於Last-Modified/If-Modified-Since)

 

二、一個頁面訪問緩衝的流程

   

三、三種重新整理的實際操作

  1.輸入URL,按斷行符號:瀏覽器發現緩衝中有這個資源,就直接從緩衝中拿。

  2.F5:即使緩衝中有這個資源,也會去伺服器確認該資源是否更改。

  3.Ctrl+F5:先把緩衝中的資源刪了,再去伺服器請求完整的資源檔。

四、如何設定緩衝

  1.配置apache或ngix伺服器(不太瞭解該方式)

  2.在伺服器回應標頭中動態設定

  3.在前端HTML頁面的Meta標籤中設定(該方法並不是所有瀏覽器都支援,且Proxy 伺服器不支援該方法,因為Proxy 伺服器不會解析HTML頁面)

  <meta http-equiv="cache-control" content="max-age=600000" />

  <meta http-equiv="expires" content="..." />

  4.在請求中用setRequestHeader()方法佈建要求頭,可設定不使用緩衝或者更改相應欄位(如設定If-None-Modified等)

 

  (此文為個人對緩衝控制的一些梳理,歡迎大家共同交流學習~)

 

HTTP緩衝控制 總結

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.