[解決済み] POSTとPUT HTTP REQUESTの違いは何ですか?
質問
どちらもボディ内でサーバーにデータを送信しているようですが、何が違うのでしょうか?
どのように解決するのですか?
HTTPのPUTです。
PUTは、ファイルやリソースを特定のURIに、そしてそのURIに正確に置きます。もしそのURIに既にファイルやリソースがあれば、PUTはそのファイルやリソースを置き換えます。 もし、そこにファイルやリソースがなければ、PUTはそれを作成します。PUTは べき乗 しかし、逆説的ですが、PUTのレスポンスはキャッシュされません。
HTTP POSTです。
POSTは特定のURIにデータを送信し、そのURIにあるリソースがリクエストを処理することを期待します。 この時点で Web サーバーは、指定されたリソースのコンテキストでデータをどのように処理するかを決定できます。POSTメソッドは べき乗 しかし、POSTレスポンス は は、サーバーが適切な Cache-Control と Expires ヘッダを設定する限り、キャッシュ可能です。
HTTPの公式RFCでは、POSTをこう規定しています。
- 既存リソースのアノテーションを行う。
- 掲示板、ニュースグループ、メーリングリストにメッセージを投稿すること。 または同様の記事のグループ。
- 送信結果などのデータブロックを提供する。 フォームをデータ処理プロセスに渡すこと。
- 追加操作によってデータベースを拡張する。
POSTとPUTの違い。
RFC自体が、核心的な違いを説明しています。
の基本的な違いは POST と PUT のリクエストは、以下のように反映されます。 の意味の違い Request-URI。POSTリクエストのURIは を識別します。 は、同封のエンティティを処理する。その リソースは、データを受理する プロセス、他のプロセスへのゲートウェイ プロトコル、または はアノテーションを受け付ける。これに対して PUTリクエストのURIは リクエストに同封されたエンティティ --。 ユーザーエージェントは、どのURIが を意図しており、サーバーはそのようなことをしてはならない(MUST NOT)。 を適用しようとする。 他のリソース サーバーが に適用させることができます。 別のURIを使用する場合は、301 (Moved Permanently) 応答を送信しなければならない(MUST)。 は、リクエストをリダイレクトするかどうかに関して、独自の判断を下す。
さらに、もう少し簡潔に。 RFC 7231 第 4.3.4 項 PUT と記載されています(強調)。
4.3.4. PUT
PUT メソッドは、対象リソースの状態を要求する。
created
またはreplaced
という表現で定義された状態 をリクエストメッセージペイロードで囲む。
正しい方法を使うこと、無関係なことはさておき。
のメリットの1つは REST ROA SOAPと比較すると、HTTP REST ROAを使用する場合、HTTP動詞/メソッドの適切な使用を推奨していることがわかります。 例えば、PUTは、その場所にリソースを作成する場合にのみ使用します。 そして、リソースを作成または変更するためにGETを使用することは決してありません。
関連
-
[解決済み] ブラウザによって異なるURLの最大長とは?
-
[解決済み] URI、URL、URNの違いは何ですか?
-
[解決済み] HTTP GET(リクエストボディ付き
-
[解決済み] java.net.URLConnectionを使用してHTTPリクエストを発生させ処理する方法
-
[解決済み] フォーム送信のようなJavaScriptのポストリクエスト
-
[解決済み] HTTP POSTリクエストでは、どのようにパラメータが送信されるのですか?
-
[解決済み] HTTP POST Web リクエストの作成方法
-
[解決済み] node.jsでHTTP POSTリクエストはどのように行われるのですか?
-
[解決済み】HTTPのPOSTとPUTの違いは何ですか?
-
[解決済み] application/x-www-form-urlencoded or multipart/form-data?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] リソースを "アンキャッシュ" する
-
[解決済み] X-Forwarded-Hostヘッダーの実際の使用方法?
-
[解決済み] OPTIONSリクエストを送信する理由と、それを無効にする方法を教えてください。
-
[解決済み] サーバーの1つのポート(例えば80)に複数のクライアントが同時に接続するにはどうすればよいですか?[重複しています]。
-
[解決済み] Firefoxで突然「Blocked loading mixed active content」問題が発生したのはなぜですか?
-
[解決済み] ベーシック認証における「レルム」とは
-
[解決済み】HTTPのPOSTとPUTの違いは何ですか?
-
[解決済み】Accept* HTTPヘッダのq=0.5とは何ですか?
-
[解決済み] なぜCache-Control属性はリクエストヘッダ(クライアントからサーバーへ)に送信されるのですか?
-
[解決済み] Angular2 http.get()、map()、subscribe()とobservableパターン - 基本的な理解