ある記事で、あるURIから別のURIへのジャンプを意味すると書いてありましたが、実際にはジャンプがまったくない場合でも、この「302」を検出しました。
ある記事で、あるURIから別のURIへのジャンプを意味すると書いてありましたが、実際にはジャンプがまったくない場合でも、この「302」を検出しました。
回答:
302リダイレクトはページが一時的に移動されたことを意味し、301は永続的に移動されたことを意味します。
301はSEO値に適していますが、302は元のURLの値を忘れるように指示するため、302はそうではありません。一方、302は元のURLの値を保持し、2つの論理的に異なるURLを作成することで値を減らすことができます。それぞれが同じコンテンツを生成します(検索エンジンは、2つの名前を持つ単一のリソースではなく、別個の重複としてそれらを表示します)。
この質問はずっと前に行われましたが、RFC 2616はまだぶら下がっていました。この質問に対するいくつかの回答は、このようなドキュメントに基づいていますが、現在は関係ありません。執筆時点でIETF HTTPおよびQUICワーキンググループの共同議長を務めるMark Nottinghamを引用します。
RFC2616を使用しないでください。ハードドライブ、ブックマークから削除し、印刷されたコピーを書き込み(または責任を持ってリサイクル)します。
古いRFC 2616は、HTTP / 1.1プロトコルを定義する次のドキュメントに取って代わられました。
したがって、HTTP / 1.1ステータスコードの現在のリファレンスであるRFC 7231に基づく回答を提供することを目指しています。
302
ステータスコードでの応答302
は、URLリダイレクトを実行する一般的な方法です。一緒に302
ステータスコード、応答が含まれている必要がありLocation
、異なるURIを持つヘッダ。このようなヘッダーはユーザーエージェントによって解析され、リダイレクトを実行します。
Webブラウザーは、後続の要求でからPOST
に変更される場合がありますGET
。この動作が望ましくない場合は、307
代わりに(一時的なリダイレクト)ステータスコードを使用できます。
これは、302
ステータスコードがRFC 7231で定義されている方法です。
の
302
(実測値)ステータスコードは、ターゲット・リソースが異なるURIの下に一時的に存在することを示しています。リダイレクトはときどき変更される可能性があるため、クライアントは今後のリクエストに引き続き有効なリクエストURIを使用する必要があります。サーバー
Location
は、異なるURIのURI参照を含むヘッダーフィールドを応答に生成する必要があります(SHOULD)。ユーザーエージェントは、Location
自動リダイレクトのためにフィールド値を使用してもよい(MAY)。サーバーの応答ペイロードには、通常、異なるURIへのハイパーリンクを含む短いハイパーテキストノートが含まれています。注:歴史的な理由により、ユーザーエージェントは後続のリクエストのためにリクエストメソッドをから
POST
に変更する場合がありますGET
。この動作が望ましくない場合は、307
代わりに(一時的なリダイレクト)ステータスコードを使用できます。
MozillaのMDN Web docsによると、の一般的な使用例302
は次のとおりです。
このWebページは、予期せぬ理由により一時的に利用できなくなっています。そうすれば、検索エンジンはリンクを更新しません。
RFC 7231定義リダイレクションのための次のステータスコード:
RFC 7238は、リダイレクトに別のステータスコードを定義するために作成されました:
308
(永久リダイレクト)詳細については、この回答を参照してください。
Location
ヘッダーは私を助けたものでした)。私がサービスを呼び出していてhttp
、彼らがに移動したhttps
ことがわかりました。返答を得たのは302
、Location
ここでヘッダーを読むとすぐにhttp/https
違いがわかりました。ありがとうございました!
HTTP 301リダイレクトと302リダイレクトの簡単な見方は次のとおりです。
「http://sample.com/sample」へのブックマークがあるとします。あなたはそこに行くためにブラウザを使います。
この時点で302が別のURLにリダイレクトされるということは、ブックマークを " http://sample.com/sample "に保持する必要があることを意味します。これは、リンク先URLが将来変更される可能性があるためです。
別のURLへの301リダイレクトは、ブックマークが永続的なリダイレクトであるため、新しいURLを指すように変更する必要があることを意味します。
10.3.3 302が見つかりました リクエストされたリソースは一時的に別のURIに存在します。 リダイレクトは時々変更される可能性があるため、クライアントはSHOULD 今後のリクエストには引き続きRequest-URIを使用します。この反応 Cache-ControlまたはExpiresヘッダーで示されている場合にのみキャッシュ可能です フィールド。 一時URIは、 応答。リクエストメソッドがHEADでない限り、 応答には、次へのハイパーリンクを含む短いハイパーテキストノートを含める必要があります 新しいURI。
ソース:
あたりとしてHTTPステータスコード定義 302(一時的な)リダイレクトを示しています。「要求されたリソースは一時的に別のURIに存在します」
HTTPコード302はリダイレクト用であり、http://en.wikipedia.org/wiki/HTTP_302を参照してください。
閲覧者にページを読んで別の場所に移動して別のページをロードするように指示します。その使用法は非常に一般的です。
よるRFC 1945 /ハイパーテキスト転送プロトコル- HTTP / 1.0:
302 Moved Temporarily
The requested resource resides temporarily under a different URL.
Since the redirection may be altered on occasion, the client should
continue to use the Request-URI for future requests.
The URL must be given by the Location field in the response. Unless
it was a HEAD request, the Entity-Body of the response should
contain a short note with a hyperlink to the new URI(s).
If the 302 status code is received in response to a request using
the POST method, the user agent must not automatically redirect the
request unless it can be confirmed by the user, since this might
change the conditions under which the request was issued.
Note: When automatically redirecting a POST request after
receiving a 302 status code, some existing user agents will
erroneously change it into a GET request.
例: -302リダイレクトが必要になることはあまり一般的ではありませんが、このオプションは非常に役立つ場合があります。これらは最も頻繁なケースです:
リダイレクト302は、特定のURLの訪問者にページが一時的に移動されたことを知らせ、直接新しい場所に案内するコードです。
言い換えると、Googleロボットまたは他の検索エンジンが特定のページをロードするように要求すると、リダイレクト302がアクティブになります。その時点で、このリダイレクトのおかげで、サーバーは新しいURLを示す自動応答を返します。
このようにして、エラーや煩わしさが検索エンジンとユーザーの両方に回避され、スムーズなナビゲーションが保証されます。
詳細については、この記事を参照してください。
302ステータスコードは、リクエストされたリソースが一時的に別のURIに移動されたことを示すHTTP応答ステータスコードです。場所または現在のリダイレクトディレクティブは将来変更される可能性があるため、302 Found応答コードを受け取ったクライアントは、今後のリクエストで引き続き元のURIを使用する必要があります。
このステータスコードを含むHTTP応答は、ヘッダーフィールドの場所にURLを追加で提供します。これは、場所フィールドで指定された新しいURLに2回目、それ以外は同一のリクエストを行うユーザーエージェント(Webブラウザーなど)への招待です。最終結果は、新しいURLへのリダイレクトです。