HTTP / 1.1 302は正確にはどういう意味ですか?


120

ある記事で、あるURIから別のURIへのジャンプを意味すると書いてありましたが、実際にはジャンプがまったくない場合でも、この「302」を検出しました。



2
細心の注意を払ってください:example.com example.comexample.comは論理的に区別されており、単一のURLを介してアクセスしたいサイトは、これを実現するためにあるサイトから別のサイトにリダイレクトする場合があります。もちろん、302リダイレクトはこれには適していません...しかし、同様に微妙なバリエーションを見たことがあるかもしれません。
Shog9 2009年

このサイト(参照してくださいhostingpill.com/http-302-error
virusarthak

回答:


74

302リダイレクトはページが一時的に移動されたことを意味し、301は永続的に移動されたことを意味します。

301はSEO値に適していますが、302は元のURLの値を忘れるように指示するため、302はそうではありません。一方、302は元のURLの値を保持し、2つの論理的に異なるURLを作成することで値を減らすことができます。それぞれが同じコンテンツを生成します(検索エンジンは、2つの名前を持つ単一のリソースではなく、別個の重複としてそれらを表示します)。


58

この質問はずっと前に行われましたが、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で定義されている方法です。

6.4.3。302見つかりました

302(実測値)ステータスコードは、ターゲット・リソースが異なるURIの下に一時的に存在することを示しています。リダイレクトはときどき変更される可能性があるため、クライアントは今後のリクエストに引き続き有効なリクエストURIを使用する必要があります。

サーバーLocationは、異なるURIのURI参照を含むヘッダーフィールドを応答に生成する必要があります(SHOULD)。ユーザーエージェントは、Location自動リダイレクトのためにフィールド値を使用してもよい(MAY)。サーバーの応答ペイロードには、通常、異なるURIへのハイパーリンクを含む短いハイパーテキストノートが含まれています。

注:歴史的な理由により、ユーザーエージェントは後続のリクエストのためにリクエストメソッドをからPOSTに変更する場合がありますGET。この動作が望ましくない場合は、307代わりに(一時的なリダイレクト)ステータスコードを使用できます。

MozillaのMDN Web docsによると、の一般的な使用例302は次のとおりです。

このWebページは、予期せぬ理由により一時的に利用できなくなっています。そうすれば、検索エンジンはリンクを更新しません。

リダイレクトのその他のステータスコード

RFC 7231定義リダイレクションのための次のステータスコード:

  • 301 (永久に移動)
  • 302 (見つかりました)
  • 307 (一時的なリダイレクト)

RFC 7238は、リダイレクトに別のステータスコードを定義するために作成されました:

  • 308 (永久リダイレクト)

詳細については、この回答を参照してください。


2
よく私の2日間の痛みはあなたにthxを超えています(Locationヘッダーは私を助けたものでした)。私がサービスを呼び出していてhttp、彼らがに移動したhttpsことがわかりました。返答を得たのは302Locationここでヘッダーを読むとすぐにhttp/https違いがわかりました。ありがとうございました!
ユージーン

このエラーについても同じ理由があります。Javascriptが間違ったhttpsの場所をポイントしていたため、リダイレクトが失敗しました。コメントありがとうございます。
最大

25

HTTP 301リダイレクトと302リダイレクトの簡単な見方は次のとおりです。

http://sample.com/sample」へのブックマークがあるとします。あなたはそこに行くためにブラウザを使います。

この時点で302が別のURLにリダイレクトされるということは、ブックマークを " http://sample.com/sample "に保持する必要があることを意味します。これは、リンク先URLが将来変更される可能性があるためです。

別のURLへの301リダイレクトは、ブックマークが永続的なリダイレクトであるため、新しいURLを指すように変更する必要があることを意味します。


9

RFC 2616(ハイパーテキスト転送プロトコル仕様)

10.3.3 302が見つかりました

   リクエストされたリソースは一時的に別のURIに存在します。
   リダイレクトは時々変更される可能性があるため、クライアントはSHOULD
   今後のリクエストには引き続きRequest-URIを使用します。この反応
   Cache-ControlまたはExpiresヘッダーで示されている場合にのみキャッシュ可能です
   フィールド。

   一時URIは、
   応答。リクエストメソッドがHEADでない限り、
   応答には、次へのハイパーリンクを含む短いハイパーテキストノートを含める必要があります
   新しいURI。

ソース:

http://www.ietf.org/rfc/rfc2616.txt




5

302は、リソースの場所の変更を示す応答です-「見つかりました」。

現在リソースを配置する必要があるURLは、応答の「Location」ヘッダーにある必要があります。

「ジャンプ」は、要求元のクライアントが実行する必要があります(応答のLocationヘッダーフィールドのリソースURLに新しい要求を作成します)。


5

SEOの用語では、301と302はどちらも良いです、それは状況によって異なりますが、

1つのバージョンのみが返される(つまり、他のバージョンがそれにリダイレクトされる)場合、それはすばらしいことです。この動作は、重複するコンテンツを減らすため、有益です。末尾のスラッシュURLへのリダイレクトの特定のケースでは、リダイレクトが301または302であったかどうかに関係なく、検索結果には200応答コード(ほとんどの場合、末尾のスラッシュURL)を含むURLのバージョンが表示されます。



1

よる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.

0
  • コード302は一時的なリダイレクトを示します。
  • これを301リダイレクトと区別する最も注目すべき機能の1つは、302リダイレクトの場合、SEOの強度が新しいURLに転送されないことです。
  • これは、このリダイレクトが、コンテンツを最終的なものではないページにリダイレクトする必要がある場合に使用するように設計されているためです。したがって、リダイレクトが削除されても、元のページはGoogle検索エンジンでの位置を失うことはありません。

例: -302リダイレクトが必要になることはあまり一般的ではありませんが、このオプションは非常に役立つ場合があります。これらは最も頻繁なケースです:

  • ページに不適切なコンテンツがあることに気づいたとき。問題を解決する間、ユーザーを関心のある別のページにリダイレクトできます。
  • 当社のWebサイトへの攻撃がいずれかのページの復元を必要とする場合、このリダイレクトにより発生率を最小限に抑えることができます。

リダイレクト302は、特定のURLの訪問者にページが一時的に移動されたことを知らせ、直接新しい場所に案内するコードです。

  • 言い換えると、Googleロボットまたは他の検索エンジンが特定のページをロードするように要求すると、リダイレクト302がアクティブになります。その時点で、このリダイレクトのおかげで、サーバーは新しいURLを示す自動応答を返します。

  • このようにして、エラーや煩わしさが検索エンジンとユーザーの両方に回避され、スムーズなナビゲーションが保証されます。

詳細については、この記事を参照してください。


0

302ステータスコードは、リクエストされたリソースが一時的に別のURIに移動されたことを示すHTTP応答ステータスコードです。場所または現在のリダイレクトディレクティブは将来変更される可能性があるため、302 Found応答コードを受け取ったクライアントは、今後のリクエストで引き続き元のURIを使用する必要があります。

このステータスコードを含むHTTP応答は、ヘッダーフィールドの場所にURLを追加で提供します。これは、場所フィールドで指定された新しいURLに2回目、それ以外は同一のリクエストを行うユーザーエージェント(Webブラウザーなど)への招待です。最終結果は、新しいURLへのリダイレクトです。


0

命名について興味があるかもしれない人のために、ユーザーが受け取る予定のメインリソース(たとえば、プライベートWebページ)がその時点で利用できないため(たとえば、ユーザーはまだ自分の身元を証明していないため)、代わりにサーバーはユーザーが受信できる新しいリソース(最も一般的な使用例ではログインページ)を見つけました。

また、それはかくれんぼの方法で「失われ、発見される」ことを意味します。つまり、302ステータスの下で失われたリソースは一時的にのみ失われ、永久に失われることはありません(プレイヤーが何らかの悪い意図を持っていない限り;))。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.