1. 優(yōu)點
- 降低服務(wù)器負荷。
- 提高響應速度。
2. 緩存位置
- 瀏覽器
- 代理服務(wù)器
3. Cache-Control 字段
通用首部字段,控制緩存的行為。
Cache-Control: private, max-age=0, no-cache
private:默認值,僅客戶端可以緩存,代理服務(wù)器不可緩存,與 public 相對。
no-cache:使用代理服務(wù)器緩存時,需先向源服務(wù)器驗證緩存是否過期。何時使用代理服務(wù)器緩存呢?
一是客戶端請求時,二是源服務(wù)器返回緩存給代理服務(wù)器,代理服務(wù)器需緩存時。no-store:不允許緩存。no-cache 是緩存前需先進行認證,private 是只允許客戶端緩存。
max-age:請求報文中,max-age 越小,對緩存有效性越苛刻。當 max-age 為 0,那么緩存服務(wù)器通常需要將請求轉(zhuǎn)發(fā)給源服務(wù)器。因為緩存服務(wù)器的緩存時間必須比請求報文中的 max-age 小才接收。
響應報文中,max-age 指緩存在代理服務(wù)器的有效時間。
注:Expires 字段也可以用于告知緩存服務(wù)器該資源什么時候會過期。在 HTTP/1.1 中,會優(yōu)先處理 Cache-Control : max-age 指令;而在 HTTP/1.0 中,Cache-Control : max-age 指令會被忽略掉。
4. 總結(jié)
no-store 是不緩存,默認 private 是只允許客戶端緩存,no-cache 是使用緩存前需認證,max-age 是指定緩存的有效期。