[解決済み] HTTPリダイレクトコードの違い
2022-04-26 01:26:01
質問
様々なHTTP 3XXリダイレクトコードの違いがよくわかりません。 はい、仕様書は読みましたが、ここでは標準と実際の実践の間に食い違いがあるようです。
その
301
リダイレクトコードは十分に明確なようです。これは、リソースが永久に別のURIに移動したことを意味し、今後のリクエストはそのURIを使用する必要があります。
そして
307
リダイレクトコードも明確です。リダイレクトは一時的なものであり、今後のリクエストには元のURIを使用する必要があることを意味しています。
しかし、この場合
302
と
303
との違いや、なぜこの2つが本当に違うのか?
301
. どうやら
302
は、もともと
一時的な
リダイレクト、(例えば
307
のように扱われましたが、実際にはほとんどのブラウザが
303
. しかし
303
と
301
? は
301
は、リダイレクトを意味するものと思われます。
より
永久に?
解決方法は?
- 301 : 恒久的なリダイレクト。 このリソースへの以降のリクエストを行うクライアントは、新しい URI を使用する必要があります。 クライアントは ない は、POST/PUT/DELETE リクエストに対して自動的にリダイレクトに従います。
- 302 : 未定義の理由のためリダイレクト。 このリソースへの以降のリクエストを行うクライアントは ない は新しい URI を使用します。 クライアントは ない は、POST/PUT/DELETE リクエストに対して自動的にリダイレクトに従います。
- 303 : 未定義の理由によるリダイレクト。 典型的には、「操作が完了したので、他の場所で続けてください」です。 このリソースに以降のリクエストを行うクライアントは ではない は新しいURIを使用します。 クライアント が必要です。 POST/PUT/DELETE リクエストの場合はリダイレクトに従いますが フォローアップのリクエストにはGETを使用する .
- 307 : 一時的なリダイレクトです。 リソースは後の時点でこの場所に戻る可能性があります。 このリソースへの後続のリクエストを行うクライアントは、古い URI を使用する必要があります。 クライアントは ない は、POST/PUT/DELETE リクエストに対して自動的にリダイレクトに従います。
個人的には、選択できるのであれば302を避けることをお勧めします。 多くのクライアントは、302に遭遇しても仕様に従わないからです。 一時的なリダイレクトには、GET 以外のリクエストでどのような動作をさせたいかによって、303 か 307 のどちらかを使うべきでしょう。 POST/PUT/DELETE の代替動作が必要でない限り、303 よりも 307 を優先してください。
関連
-
[解決済み] URI、URL、URNの違いは何ですか?
-
[解決済み] 403 Forbiddenと401 UnauthorizedのHTTPレスポンスの比較
-
[解決済み] HTTP GET(リクエストボディ付き
-
[解決済み] HTTP POSTリクエストでは、どのようにパラメータが送信されるのですか?
-
[解決済み] updateとdeleteのHTTPステータスコード?
-
[解決済み] 検証失敗または重複が無効な場合のREST HTTPステータスコード
-
[解決済み】別のウェブページにリダイレクトするにはどうすればいいですか?
-
[解決済み】HTTPのPOSTとPUTの違いは何ですか?
-
[解決済み】エンティティボディを持たないHTTP POSTを実行することはバッドプラクティスとみなされますか?
-
[解決済み】HTTP 301と308のステータスコードの違いは何ですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 403 Forbiddenと401 UnauthorizedのHTTPレスポンスの比較
-
[解決済み] サーバーの1つのポート(例えば80)に複数のクライアントが同時に接続するにはどうすればよいですか?[重複しています]。
-
[解決済み] Firefoxで突然「Blocked loading mixed active content」問題が発生したのはなぜですか?
-
[解決済み] HTTPヘッダーの最大値?
-
[解決済み] [Solved] リクエストに必須パラメータがない場合、どのようなHTTPステータスレスポンスコードを使用すればよいですか?
-
[解決済み】302と307のリダイレクトの違いは何ですか?
-
[解決済み】Accept* HTTPヘッダのq=0.5とは何ですか?
-
[解決済み】「HTTPはステートレスプロトコルである」と言われているのはなぜですか?
-
[解決済み] Angular2 http.get()、map()、subscribe()とobservableパターン - 基本的な理解
-
[解決済み] HTTPリダイレクトコードの違い