[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 文件狀態
雖然
Prefer
和Preference-Applied
是在 IETF 標頭註冊表中註冊的標準標頭,但目前尚未記錄在 MDN 的 HTTP 標頭列表中。我已經在這裡提交了一個 pull request 來將這些標頭添加到 MDN 的文件中。
Changelog
2025.01.16
: Add reasoning for missing link in MDN.