Skip to content
ADP
API Design PrincipleBETA

[ADP-134] Last-Modified

概述

Last-Modified 標頭是一個重要的 HTTP 回應標頭,用於指示源服務器認為資源最後修改的日期和時間。

目的

Last-Modified 標頭的主要目的是:

  1. 啟用瀏覽器和代理服務器中的緩存機制。
  2. 支持條件請求,允許客戶端檢查資源自上次檢索以來是否已被修改。

指導原則

  • 服務器必須(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: 指定請求和回應中緩存機制的指令。

參考資料