HTTP 301
と308
ステータスコードの違いは何ですか?
301
(恒久的に移動):これ以降のすべてのリクエストは、指定されたURIに送信する必要があります。308
(永続的なリダイレクト):リクエストと今後のすべてのリクエストは、別のURIを使用して繰り返す必要があります。
彼らは似ているようです。
HTTP 301
と308
ステータスコードの違いは何ですか?
301
(恒久的に移動):これ以降のすべてのリクエストは、指定されたURIに送信する必要があります。
308
(永続的なリダイレクト):リクエストと今後のすべてのリクエストは、別のURIを使用して繰り返す必要があります。
彼らは似ているようです。
回答:
301
、302
および307
RFC 7231、セマンティクス及びHTTP / 1.1プロトコルのコンテンツに対する現在の参照、定義301
(恒久的に移動)と302
要求方法から変更されることを可能にする(実測値)ステータスコードPOST
にGET
。この仕様307
では、リクエストメソッドをからに変更できない(一時的なリダイレクト)ステータスコードも定義されPOST
ていGET
ます。
以下の詳細をご覧ください。
301
(恒久的に移動)ステータスコードターゲットリソースが新しい永続URIが割り当てられており、このリソースへの将来の参照が封入されたURIのいずれかを使用するべきであることを示しています。[...]注:歴史的な理由により、ユーザーエージェントは後続のリクエストのためにリクエストメソッドをから
POST
に変更する場合がありますGET
。この動作が望ましくない場合は、307
代わりに(一時的なリダイレクト)ステータスコードを使用できます。
302
(実測値)ステータスコードは、ターゲット・リソースが異なるURIの下に一時的に存在することを示しています。リダイレクトはときどき変更される可能性があるため、クライアントは今後のリクエストに引き続き有効なリクエストURIを使用する必要があります。[...]注:歴史的な理由により、ユーザーエージェントは後続のリクエストのためにリクエストメソッドをから
POST
に変更する場合がありますGET
。この動作が望ましくない場合は、307
代わりに(一時的なリダイレクト)ステータスコードを使用できます。
307
(一時的なリダイレクト)状態コードは、それがそのURIへの自動リダイレクトを行った場合、一時的に異なるURIの下に、ターゲットリソースが存在するとユーザエージェントMUSTは要求方式を変更しないことを示しています。リダイレクションは時間の経過とともに変化する可能性があるため、クライアントは将来のリクエストに元の有効なリクエストURIを引き続き使用する必要があります。[...]注:このステータスコードは
302
(Found)に似ていますが、リクエストメソッドをからPOST
に変更できない点が異なりGET
ます。この仕様では、301
(永久に移動)に相当するものは定義されていません(ただし、RFC 7238では、308
この目的のためにステータスコード(永続的なリダイレクト)が定義されています)。
308
RFC 7238は、定義するために作成された308
と同様である(パーマネントリダイレクト)ステータスコード301
(永久移動)が、要求の方法から変更されることを可能にしないPOST
としますGET
。
308
ステータスコードは、現在によって定義されるRFC 7538(廃止RFC 7238に)。
308
(パーマネントリダイレクト)状態コードは、ターゲット・リソースが新しい永続URIが割り当てられており、このリソースへの将来の参照が封入されたURIのいずれかを使用するべきであることを示しています。リンク編集機能を持つクライアントは、有効なリクエストURIへの参照を、可能な場合はサーバーから送信される1つ以上の新しい参照に自動的に再リンクする必要があります。[...]注:このステータスコードは
301
、リクエストメソッドをからPOST
に変更できないことを除いて、(永久に移動)に似ていGET
ます。
Seには次のものがあります。
+-----------+-----------+
| Permanent | Temporary |
+------------------------------------------------------------+-----------+-----------+
| Allows changing the request method from POST to GET | 301 | 302 |
+------------------------------------------------------------+-----------+-----------+
| Doesn't allow changing the request method from POST to GET | 308 | 307 |
+------------------------------------------------------------+-----------+-----------+
Michael Kropatは、各状況に最適なステータスコードを決定するのに役立つ一連の決定チャートをまとめました。2xx
および3xx
ステータスコードについては、以下を参照してください。
POST
にGET
」?それは、投稿されたフォームを処理できないが、新しい新しいフォームを処理し、次のリクエストで投稿できることを意味しますか?
POST
(安全な)要求をすることに変更するにGET
URLに追加することで渡されるデータに危険な( -とURLを保存することができます-パスワードを含む)リクエストはセキュリティ上の問題となる可能性があり、変更しても安全であることがわかっている場合を除き、通常は回避する必要があります。最近では、一般的にサポートされており、301、302よりも307、308を使用することが推奨されています。ただし、確認する必要があります。
308
は横向きの無限大のようなものなので、永続的なリダイレクトであり、リクエストのメソッドも変更しない-永続的な固定リクエストタイプでもあります。その後、307
ある1
一時場所に永続的/キープ要求メソッド(GET / POST)が、リダイレクト-以下のステップ:7 -は「左折」または一時迂回、および7のように見えるが、kに見ても似ているので、「続ける」をリクエストメソッド。