1. 程式人生 > >http協議報頭Cache-Control使用

http協議報頭Cache-Control使用

最近,複習了下http協議。這裡主要回憶分享,學習下報頭中的Cache-Control的使用情況。

和Cache-Control一起使用的報頭屬性還有:Last-Modified: [UTC time]、ETag: [custom flag]
首先說明下Cache-Control的使用情況:

1 保鮮期only
這個是最最基礎的一種策略,只需要在響應頭中設定:
Cache-control: max-age=[secs]
[secs]是cache在客戶端存活的秒數。

eg:

Cache-control: max-age=3600 說明cache在客戶端存活1個小時。

2 保鮮期 + 最後修改時間驗證
這裡的要素是,在給出保鮮期的同時,給出一個資源的驗證方式:
Last-Modified: [UTC time]
[UTC time]標示這個響應資源的最後修改時間,例如 Last-Modified: Mon, 06 Jul 2009 09:21:48 GMT
這個響應頭只有配合Cache-control的時候才有實際價值,只是宣告校驗資源的方式,並不能影響資源的保鮮期時長

利用資源的可校驗性,我們可以實現在cache的資源超過保鮮期,瀏覽器再次請求時的304響應,令瀏覽器再次使用之前的cache

3.保鮮期 + 自定義標識驗證
這裡的要素是,在給出保鮮期的同時,給出另一種資源的驗證方式:
ETag: [custom flag]
[custom flag]標示這個響應資源的由開發者自己確定的簽名驗證標識,例如 ETag: "abcdefg",這個響應頭只有配合Cache-control的時候才有實際價值,是宣告校驗資源的方式

ETag的使用為我們實現304響應提供了更多的靈活性,我們可以拋開必須將驗證轉化成時間格式的限制

參考文章:http://blog.csdn.net/YoungerChen/archive/2011/01/04/6116147.aspx