POST と PUT HTTP REQUEST の違いは何ですか? 質問する

POST と PUT HTTP REQUEST の違いは何ですか? 質問する

どちらも体内のサーバーにデータを送信しているようですが、何が違うのでしょうか?

ベストアンサー1

HTTP プット:

PUTは、特定のURIにファイルまたはリソースを配置します。そのURIにすでにファイルまたはリソースがある場合、PUTはそのファイルまたはリソースを置き換えます。そこにファイルまたはリソースがない場合、PUTはそれを作成します。PUTはべき等性しかし、逆説的に、PUT 応答はキャッシュできません。

HTTP 1.1 RFC PUT の場所

HTTP ポスト:

POSTは特定のURIにデータを送信し、そのURIのリソースがリクエストを処理することを期待します。この時点で、Webサーバーは指定されたリソースのコンテキストでデータをどう処理するかを決定できます。POSTメソッドはべき等性ただし、サーバーが適切な Cache-Control ヘッダーと Expires ヘッダーを設定している限り、POST 応答はキャッシュ可能です。

公式 HTTP RFC では、POST を次のように指定しています。

  • 既存のリソースの注釈。
  • 掲示板、ニュースグループ、メーリング リスト、または同様の記事のグループにメッセージを投稿する。
  • フォームの送信結果などのデータ ブロックをデータ処理プロセスに提供する。
  • 追加操作を通じてデータベースを拡張します。

HTTP 1.1 RFC の POST の場所

POSTとPUTの違い:

RFC 自体では、その核心的な違いについて次のように説明しています。

POST リクエストと PUT リクエストの基本的な違いは、Request-URI の意味の違いに反映されています。POST リクエストの URI は、含まれているエンティティを処理するリソースを識別します。そのリソースは、データを受け入れるプロセス、他のプロトコルへのゲートウェイ、または注釈を受け入れる別のエンティティである可能性があります。対照的に、PUT リクエストの URI は、リクエストに含まれるエンティティを識別します。ユーザー エージェントは、どの URI が意図されているかを認識しており、サーバーは他のリソースにリクエストを適用しようとしてはなりません。サーバーがリクエストを別の URI に適用することを望む場合、301 (Moved Permanently) 応答を送信する必要があります。ユーザー エージェントは、リクエストをリダイレクトするかどうかを独自に決定できます。

さらに、もう少し簡潔に言えば、RFC 7231 セクション 4.3.4 PUT州(強調追加)、

4.3.4. 置く

PUT メソッドは、ターゲット リソースの状態が、要求メッセージ ペイロード内に含まれる表現によって定義された状態になるcreatedように要求します。replaced

適切な方法を使用すると、関係のない余談ですが:

のメリットの1つはレストROASOAP との違いは、HTTP REST ROA を使用する場合、HTTP 動詞/メソッドの適切な使用が推奨されることです。たとえば、特定の場所にリソースを作成する場合にのみ PUT を使用します。リソースの作成や変更に GET を使用することはありません。

おすすめ記事