POST
HTTPメソッド
HTTPメソッドPOSTの仕様
POSTメソッドは、リクエストに含まれる表現をリソース固有のセマンティクスに従って処理するよう、ターゲットリソースに要求します。
オリジンサーバは、POSTリクエストの処理結果に応じて適切なステータスコードを選択することで、レスポンスのセマンティクスを示します。この仕様で定義されているステータスコードのほとんどすべてが、POSTへのレスポンスで受信される可能性があります(例外は、206(Partial Content)、304(Not Modified)、416(Range Not Satisfiable)です)。
POSTリクエストを正常に処理した結果、オリジンサーバー上に1つ以上のリソースが作成された場合、オリジンサーバーは作成されたプライマリリソース(セクション7.1.2)の識別子を提供するLocationヘッダーフィールドを含む201(Created)レスポンスを送るべきです(SHOULD)。
POSTリクエストに対するレスポンスは、明示的な鮮度情報を含むときのみキャッシュ可能です([RFC7234]のセクション4.2.1参照)。しかし、POSTキャッシュは広く実装されているわけではありません。オリジンサーバーがクライアントに、後のGETで再利用できる方法でPOSTの結果をキャッシュできることを望む場合、オリジンサーバーはMAY、結果とPOSTの有効なリクエストURIと同じ値を持つContent-Locationヘッダーフィールドを含む200(OK)応答を送る(セクション3.1.4.2).
POSTを処理した結果が既存のリソースの表現と等しい場合、オリジンサーバーはMAY、Locationフィールドに既存のリソースの識別子を含む303(See Other)応答を送ることで、ユーザーエージェントをそのリソースにリダイレクトしてもよい。これは、ユーザーエージェントにリソース識別子を提供し、ユーザーエージェントがまだ表現をキャッシュしていない場合、余分なリクエストのコストはかかりますが、共有キャッシュにより従順な方法で表現を転送するという利点があります。
POSTメソッドの説明
HTTPメソッドPOSTの例
POST /data HTTP/1.1
Host: api.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537
Accept: application/json
Accept-Language: de-DE,de;q=0.5
Content-Type: application/json
Content-Length: 100
Connection: keep-alive
Request body:
{
"key": "value",
"foo": "bar"
}
Content-Type: application/json
Date: Mon, 31 July 2023 14:58:12 GMT
Server: Apache/2.4.7 (Ubuntu)
Cache-Control: no-cache
Location: http://api.example.com/data/123
Response body:
{
"status": "success",
"id": 123
}