PATCH

HTTP PATCH 請求方法用於對資源進行部分修改。

PATCH 在某種程度上類似於 CRUD 中的“更新”概念(總的來說,HTTP 與 CRUD 不同,兩者不應混淆)。

PATCH 請求被視為一組關於如何修改資源的指令。將其與 PUT 進行對比;後者是資源的完整表示。

PATCH 不一定是冪等的,儘管它可以是。將其與 PUT 進行對比;後者始終是冪等的。“冪等”一詞意味著任意數量的重複相同請求將使資源保持在相同狀態。例如,如果自動遞增計數器欄位是資源的組成部分,則 PUT 會自然地覆蓋它(因為它覆蓋所有內容),但 PATCH 不一定如此。

PATCH(與 POST 類似)可能會對其他資源產生副作用。

要了解伺服器是否支援 PATCH,伺服器可以透過將其新增到 AllowAccess-Control-Allow-Methods(對於 CORS)響應標頭中的列表中來宣傳其支援。

另一個(隱式)表明 PATCH 被允許的跡象是 Accept-Patch 標頭的存在,該標頭指定伺服器接受的補丁文件格式。

請求主體
成功響應主體 可能
安全
冪等
可快取 僅在包含新鮮度資訊時
允許在 HTML 表單

語法

http
PATCH /file.txt HTTP/1.1

示例

請求

http
PATCH /file.txt HTTP/1.1
Host: www.example.com
Content-Type: application/example
If-Match: "e0023aa4e"
Content-Length: 100

[description of changes]

響應

成功響應由任何 2xx 狀態碼指示。

在下面的示例中,使用了 204 響應程式碼,因為響應不包含主體(或者,可以使用包含有關操作資訊的 200 響應)。

http
HTTP/1.1 204 No Content
Content-Location: /file.txt
ETag: "e0023aa4f"

規範

規範
RFC 5789

另請參閱