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

另请参阅