かつて読んだ記事のなかには、(あるURIから別のURIへの)ジャンプを意味するものがありましたが、実際にはジャンプがまったくなかった場合でも、この「302」を検出しました。
302リダイレクトはページが一時的に移動されたことを意味し、301はページが永久に移動されたことを意味します。
301はSEO値に適していますが、301はクライアントが元のURLの値を忘れるように指示するため、302はそうではありませんが、302は元の値を保持しているため、論理的に異なる2つのURLそれぞれが同じコンテンツを生成します(検索エンジンは、2つの名前を持つ単一のリソースではなく、別個の重複としてそれらを表示します)。
RFC 2616がまだぶらぶらしている間に、この質問はずっと前に尋ねられました。この質問に対するいくつかの回答は、そのような文書に基づいていますが、現在では関係ありません。引用 マークノッティンガム 執筆時点でIETF HTTPおよびQUICワーキンググループの共同議長:
RFC2616を使用しないでください。ハードドライブ、ブックマークから削除し、印刷されたコピーを焼きます(または責任を持ってリサイクルします)。
古いRFC 2616は、一緒にHTTP/1.1プロトコルを定義する次のドキュメントに取って代わりました。
そこで、HTTP/1.1ステータスコードの現在のリファレンスである RFC 7231 に基づいて回答を提供することを目指しています。
302
ステータスコード302
を使用した応答は、URLリダイレクトを実行する一般的な方法です。 302
ステータスコードとともに、応答には別のURIを持つ Location
ヘッダーを含める必要があります。このようなヘッダーはユーザーエージェントによって読み取られ、リダイレクトを実行します。
Webブラウザーは、後続のリクエストで POST
から GET
に変更される場合があります。この動作が望ましくない場合は、代わりに 307
(一時リダイレクト)ステータスコードを使用できます。
これは、 302
ステータスコードが RFC 7231 で定義される方法です。
302
(見つかった)ステータスコードは、ターゲットリソースが一時的に別のURIにあることを示します。リダイレクトはときどき変更される可能性があるため、クライアントは今後のリクエストに有効なリクエストURIを引き続き使用する必要があります。サーバーは、異なるURIのURI参照を含む応答に
Location
ヘッダーフィールドを生成する必要があります。ユーザーエージェントは、Location
フィールドの値を自動リダイレクトに使用する場合があります。サーバーの応答ペイロードには、通常、さまざまなURIへのハイパーリンクを持つ短いハイパーテキストノートが含まれています。注:歴史的な理由により、ユーザーエージェントは、後続のリクエストのリクエストメソッドを
POST
からGET
に変更する場合があります。この動作が望ましくない場合は、代わりに307
(一時リダイレクト)ステータスコードを使用できます。
MozillaのMDN Webドキュメント によると、 302
の典型的な使用例は次のとおりです。
Webページは、予期しない理由により一時的に利用できません。そのようにして、検索エンジンはリンクを更新しません。
RFC 7231 は、リダイレクトの次のステータスコードを定義します。
RFC 7238 は、リダイレクト用の別のステータスコードを定義するために作成されました。
308
(永続的なリダイレクト)詳細については、こちらをご覧ください answer .
HTTP 301と302リダイレクトの簡単な見方は次のとおりです。
「 http://sample.com/sample 」へのブックマークがあるとします。ブラウザを使用してそこに行きます。
この時点で別のURLに302リダイレクトすると、ブックマークを「 http://sample.com/sample 」のままにしておく必要があります。これは、リンク先URLが将来変更される可能性があるためです。
別のURLへの301リダイレクトは、永続的なリダイレクトであるため、新しいURLを指すようにブックマークを変更する必要があることを意味します。
From RFC 2616(ハイパーテキスト転送プロトコル仕様) :
10.3.3 302 Found 要求されたリソースは一時的に別のURIに存在します。 リダイレクトが変更される場合があるため、クライアントは 将来のリクエストにRequest-URIを使用し続けます。この応答 は、Cache-ControlまたはExpiresヘッダー フィールドで示されている場合にのみキャッシュ可能です。 一時フィールドのURIは、 応答。リクエストメソッドがHEADでない限り、 レスポンスのエンティティには、新しいURIへのハイパーリンクを持つ短いハイパーテキストノートが含まれるべきである[SHOULD]。
ソース:
httpステータスコード定義 に従って、302は(一時的な)リダイレクトを示します。 「要求されたリソースは一時的に別のURIにあります」
302は、リソースの場所の変更を示す応答です-「見つかりました」。
リソースを現在配置するURLは、レスポンスの「Location」ヘッダーにある必要があります。
「ジャンプ」は、要求元のクライアントが実行する必要があります(応答のLocationヘッダーフィールドでリソースURLに新しい要求を作成します)。
SEOの用語では、301と302の両方が良いです。
1つのバージョンしか返せない場合(つまり、他のバージョンがリダイレクトされる場合)、それは素晴らしいことです!この動作は、重複するコンテンツを減らすため有益です。末尾のスラッシュURLへのリダイレクトの特定の場合、検索結果には、リダイレクトが301か302かに関係なく、200の応答コード(ほとんどの場合、末尾のスラッシュURL)を含むURLのバージョンが表示される可能性があります。
From Wikipedia :
HTTP応答ステータスコード302 Foundは、リダイレクトを実行する最も一般的な方法です。これは、標準と矛盾する産業慣行の例です。
HTTPコード302はリダイレクト用です http://en.wikipedia.org/wiki/HTTP_302 を参照してください。
閲覧者にページを読んで別の場所に移動し、別のページをロードするよう指示します。その使用法は非常に一般的です。
RFC 1945/Hypertext Transfer Protocol-HTTP/1. :によると
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.