Cache-Control字段是http報文中的通用首部字段,既存在於請求報文中,也存在於響應報文中。部分字段值是共有的,但是具體的處理也會有差異。
共有字段:
字段名| 請求報文 | 響應報文 |
| no-cache | 無論緩存是否過期,都要對請求進行校驗 |緩存服務器在進行緩存前,必須校驗是否過期 |
| no-store | 請求報文中可能存在機密信息,不可緩存 |響應報文中可能存在機密信息,不可緩存 |
| max-age=[秒] | 如果緩存資源的緩存時間值小於指定時間值,則使用緩存(當值為0時,緩存服務器通常將請求轉發給源服務器,不使用緩存) | 在緩存時間內,緩存服務器不再對緩存的有效性進行檢驗 |
| no-transform | 禁止代理改變實體主體的媒體類型 |
| cache-extension | 新指令標記,如果緩存服務器不能理解,則忽略 |
請求報文私有字段值:
| max-stale(=[秒]) | 提示緩存服務器,即使緩存過期也使用;或者在過期后的指定時間內依然使用緩存 |
| min-fresh(=[秒]) | 提示緩存服務器,如果緩存在指定時間內還沒過期,則返回 |
| only-if-cache | 提示服務器如果有緩存就返回,不需要確認有效性。如果沒有,則返回504網關超時 |
響應報文私有字段值:
| public | 明確指明緩存可以給所有用戶使用 |
| private | 明確指明緩存不可以給其他用戶使用 |
| must-revalidate | 如果緩存未過期,則返回;否則代理在返回緩存數據之前,必須向源服務器發起請求,驗證緩存是否有效。如果無法連接上源服務器,則返回504網關超時 |
| proxy-revalidate | 所有緩存服務器在返回緩存數據前,都要向源服務器發起請求驗證有效性|
| s-maxage=[秒] | 緩存資源的時間小於指定時間時,直接返回緩存|
