[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