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)応答を送ることで、ユーザーエージェントをそのリソースにリダイレクトしてもよい。これは、ユーザーエージェントにリソース識別子を提供し、ユーザーエージェントがまだ表現をキャッシュしていない場合、余分なリクエストのコストはかかりますが、共有キャッシュにより従順な方法で表現を転送するという利点があります。

    HTTPメソッドPOSTは、インターネット・エンジニアリング・タスク・フォース(IETF)とワールド・ワイド・ウェブ・コンソーシアム(W3C)によって、文書RFC 7231のセクション4.3.3で規定されている。

    POSTメソッドの説明

    仕掛かり品

    HTTPメソッドPOSTの例

    Request header:
    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"
    }
    Response header:
    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
    }