Skip to content
ADP
API Design PrincipleBETA

[ADP-136] Prefer

概述

Prefer 標頭用於 HTTP 請求中,用來指定客戶端希望伺服器在處理請求時應用的可選行為。此標頭允許客戶端表明其偏好而不強制執行,讓伺服器在可能的情況下靈活地遵守這些偏好。

指導原則

  • 伺服器必須(MUST)忽略它們不理解或無法滿足的偏好。
  • 客戶端必須(MUST)準備好處理回應,就像沒有指定偏好一樣。
  • API 必須(MUST)僅將 Prefer 標頭用於可選行為;不要依賴它們來實現關鍵功能。
  • API 應該(SHOULD)實施對 Prefer 標頭使用的監控,以了解客戶端需求和 API 性能。
  • 若支援 Prefer,必須(MUST)將 Prefer 的內容記錄在 API 文件中。

伺服器回應

  • 當伺服器遵守偏好時,它應該(SHOULD)在回應中包含 Preference-Applied 標頭:
http
HTTP/1.1 202 Accepted
Preference-Applied: respond-async
Content-Type: application/json
{
  "status": "processing",
  "estimated_completion_time": "2023-06-15T14:30:00Z"
}

語意

參閱 ADP-355

相關 ADP

參考資料

  • RFC 7240: HTTP 的 Prefer 標頭
  • MDN Web 文件: Prefer

    MDN 文件狀態

    雖然 PreferPreference-Applied 是在 IETF 標頭註冊表中註冊的標準標頭,但目前尚未記錄在 MDN 的 HTTP 標頭列表中。我已經在這裡提交了一個 pull request 來將這些標頭添加到 MDN 的文件中。

Changelog

  • 2025.01.16: Add reasoning for missing link in MDN.