title | slug |
---|---|
PATCH |
Web/HTTP/Methods/PATCH |
{{HTTPSidebar}}
HTTP の PATCH
リクエストメソッドは、リソースへの部分的な変更を適用します。
PATCH
は {{Glossary("CRUD")}} に見られる "update" の概念にやや類似しています(一般的に、 HTTP は {{Glossary("CRUD")}} とは異なり、両者は混同するべきではありません)。
PATCH
リクエストは、リソースをどのように修正するかの指示のセットと考えられます。これは {{HTTPMethod("PUT")}} がリソースの完全な表現を送るのと対照的です。
PATCH
はべき等であるとは限りませんが、そうなる可能性もあります。この点は、常にべき等である {{HTTPMethod("PUT")}} とは対照的です。「べき等」という言葉は、同じリクエストを何度繰り返しても、リソースが同じ状態になることを意味します。 例えば、自動インクリメントするカウンタフィールドがリソースの不可欠な部分である場合、 {{HTTPMethod("PUT")}} は自然にそれを上書きしますが(すべてを上書きするので)、 PATCH
は必ずしもそうとは限りません。
PATCH
は({{HTTPMethod("PUT")}} のように)他のリソースに対して副作用が発生する場合があります。
サーバーが PATCH
に対応しているかどうかを調べるために、サーバーは {{HTTPHeader("Allow")}} または {{HTTPHeader("Access-Control-Allow-Methods")}} (CORS の場合)レスポンスヘッダーのリストに追加することで対応状況を知らせることができます。
PATCH
が許可されていることを示すもう1つの(暗黙の)識別方法は、サーバーが受け付けるパッチ文書の形式を指定する {{HTTPHeader("Accept-Patch")}} があることです。
リクエストの本文 | あり |
---|---|
成功時のレスポンスの本文 | あり |
{{Glossary("Safe/HTTP", "安全性")}} | なし |
{{Glossary("Idempotent", "べき等性")}} | なし |
{{Glossary("Cacheable", "キャッシュ")}} | 鮮度を表す情報が含まれている場合のみ可能 |
HTML フォームでの利用 | 不可 |
PATCH /file.txt HTTP/1.1
PATCH /file.txt HTTP/1.1
Host: www.example.com
Content-Type: application/example
If-Match: "e0023aa4e"
Content-Length: 100
[変更の記述]
成功レスポンスは 2xx ステータスコードで示されます。
この例の場合、本文が含まれていないため {{HTTPStatus("204")}} コードで成功レスポンスが示されます。もし {{HTTPStatus("200")}} コードであれば本文が含まる可能性があります。
HTTP/1.1 204 No Content
Content-Location: /file.txt
ETag: "e0023aa4f"
仕様書 | 題名 |
---|---|
{{RFC("5789", "PATCH")}} | PATCH Method for HTTP |
- {{HTTPStatus("204")}}
- {{HTTPHeader("Allow")}}, {{HTTPHeader("Access-Control-Allow-Methods")}}
- {{HTTPHeader("Accept-Patch")}} – サーバーが受け入れる PATCH 文書の形式を指定します。