Skip to content
ADP
API Design PrincipleBETA

[ADP-152] X-HTTP-Method-Override

概述

X-HTTP-Method-Override 標頭允許客戶端指定與請求中使用的 HTTP 方法不同的 HTTP 方法。這在客戶端環境(例如 HTML 表單)中僅限於使用某些 HTTP 方法(如 GET 或 POST)時特別有用。

TIP

一般來說,始終使用適當的 HTTP 方法來執行操作。此標頭主要是為了解決客戶端限制,防止直接使用某些 HTTP 方法的問題。

指導

  • 當您需要在不允許這些方法直接使用的環境中支持 RESTful 操作(如 PUT、DELETE)時,API 伺服器可以(MAY)實現 X-HTTP-Method-Override
  • 使用 X-HTTP-Method-Override 可能會導致安全性問題,例如 CSRF 攻擊。因此,應(SHOULD)謹慎使用此標頭,並考慮是否停止支援此標頭或者不支援特定 HTTP 方法的客戶端。

實施

  • 客戶端應在其請求中包含 X-HTTP-Method-Override 標頭,以指示預期的 HTTP 方法。
  • 伺服器應檢查 X-HTTP-Method-Override 標頭的存在,如果存在,則相應地覆蓋請求的方法。

範例

客戶端發送 POST 請求以刪除資源:

http
POST /resource/123 HTTP/1.1
Host: api.example.com
X-HTTP-Method-Override: DELETE

參考