[ADP-134] Last-Modified
概述
Last-Modified
標頭是一個重要的 HTTP 回應標頭,用於指示源服務器認為資源最後修改的日期和時間。
目的
Last-Modified
標頭的主要目的是:
- 啟用瀏覽器和代理服務器中的緩存機制。
- 支持條件請求,允許客戶端檢查資源自上次檢索以來是否已被修改。
指導原則
- 服務器必須(MUST)在可能的情況下為可緩存資源包含
Last-Modified
標頭。 Last-Modified
日期應該(SHOULD)盡可能準確。- 如果無法確定最後修改時間,服務器不應(SHOULD NOT)發送
Last-Modified
標頭。 - 客戶端應該(SHOULD)結合使用
If-Modified-Since
標頭和Last-Modified
以實現高效緩存。 - 對於頻繁變化的資源,應該(SHOULD)考慮使用
ETag
標頭作為替代或補充。 - 動態生成的內容應該(SHOULD)謹慎使用
Last-Modified
,確保其準確性。
用法
服務器回應
當回應 GET 或 HEAD 請求時,如果服務器可以確定請求資源的最後修改時間,應該包含 Last-Modified
標頭。
示例:
http
HTTP/1.1 200 OK
Content-Type: text/html
Last-Modified: Wed, 21 Oct 2023 07:28:00 GMT
客戶端請求
客戶端可以在後續請求中使用 If-Modified-Since
標頭來檢查資源自上次檢索以來是否已被修改。
示例:
http
GET /example.html HTTP/1.1
Host: www.example.com
If-Modified-Since: Wed, 21 Oct 2023 07:28:00 GMT
相關標頭
ETag
: 提供了一種更精確的機制來驗證緩存的資源。If-Modified-Since
: 在客戶端請求中用於條件性地檢索資源。Cache-Control
: 指定請求和回應中緩存機制的指令。