目次
コンセプト
一般的なアプリケーションシナリオ
コードデモ
301と302を選ぶ際の注意点
参考資料
ホームページ ウェブフロントエンド htmlチュートリアル HTTP ステータス コード: 301、302 リダイレクト

HTTP ステータス コード: 301、302 リダイレクト

Sep 27, 2016 pm 02:05 PM

コンセプト

301 Moved Permanently 要求されたリソースは新しい場所に永久に移動されました。このリソースへの今後の参照では、この応答で返されたいくつかの URI の 1 つを使用する必要があります。可能であれば、リンク編集機能を持つクライアントは、要求されたアドレスをサーバーから返されたアドレスに自動的に変更する必要があります。特に指定がない限り、この応答もキャッシュ可能です。 新しい永続的な URI は、応答の Location フィールドで返される必要があります。これが HEAD リクエストでない限り、応答エンティティには新しい URI へのハイパーリンクと簡単な説明が含まれている必要があります。 これが GET または HEAD リクエストではない場合、リクエストの条件がそれに応じて変更される可能性があるため、ユーザーが確認しない限りブラウザは自動リダイレクトを禁止します。 注: HTTP/1.0 プロトコルを使用する一部のブラウザでは、送信した POST リクエストが 301 レスポンスを受け取ると、後続のリダイレクト リクエストは GET メソッドになります。

302 Found 要求されたリソースは、別の URI からの要求に一時的に応答するようになりました。このようなリダイレクトは一時的なものであるため、クライアントは今後も元のアドレスにリクエストを送信し続ける必要があります。この応答は、Cache-Control または Expires で指定されている場合にのみキャッシュ可能です。 新しい一時 URI は、応答の Location フィールドで返される必要があります。これが HEAD リクエストでない限り、応答エンティティには新しい URI へのハイパーリンクと簡単な説明が含まれている必要があります。 これが GET または HEAD リクエストではない場合、リクエストの条件がそれに応じて変更される可能性があるため、ユーザーが確認しない限りブラウザは自動リダイレクトを禁止します。 注: RFC 1945 および RFC 2068 の仕様では、クライアントがリダイレクト時にリクエスト メソッドを変更することを許可していませんが、多くの既存のブラウザは 302 レスポンスを 303 レスポンスと見なし、場所に関係なく、GET メソッドを使用して Location で指定された URI にアクセスします。元のリクエストのメソッド。ステータス コード 303 および 307 は、サーバーがクライアントからどのような応答を期待しているかを明確にするために追加されました。

これはウィキペディアから得た概念です。読んだ後でも、大まかなアイデアは得られます。 301 は、アクセスされたリソースが完全に削除されており、クライアントは新しい URI に従ってリダイレクトにアクセスする必要があることを意味します。302 は、アクセスされたリソースに場所 URI を使用して一時的にアクセスできるが、次回アクセスしたときに古いリソースがまだ存在していることを意味します。再度アクセスするときにリダイレクトする必要がない場合があります。

一般的なアプリケーションシナリオ

  • シナリオ 1: ドメイン名を変更する必要があり、古いドメイン名が必要なくなった場合、ユーザーが古いドメイン名にアクセスすると、301 を使用して新しいドメイン名にリダイレクトされます。実際、これは、含まれるドメイン名に新しいドメイン名を含める必要があることも検索エンジンに伝えます。

  • シナリオ 2: ログイン後に指定されたページにリダイレクトします。このシナリオは、ログインが成功し、特定のシステム ページにジャンプする場合によく見られます。

  • シナリオ 3 5 秒後に注文詳細ページに戻るなど、ページを自動的に更新する必要がある場合があります。

  • シナリオ 4 システムをアップグレードしたり、特定の機能を切り替えたりするときに、アドレスを一時的に変更する必要がある場合があります。

  • シナリオ 5: Weibo などには短いドメイン名が使用されており、ユーザーは閲覧後に実際のアドレスにリダイレクトされる必要があります。

コードデモ

リーリー

ユーザーがアクセスすると、ブラウザは http://127.0.0.1/login.htm にリダイレクトされます

301と302を選ぶ際の注意点

302 リダイレクトと URL ハイジャック (URL ハイジャック) URL A から URL B への 302 リダイレクトを行う場合、ホスト サーバーの暗黙の意味は、URL A がいつでも考えを変え、独自のコンテンツを再表示したり、他の場所にリダイレクトしたりする可能性があるということです。 。ほとんどの場合、302 リダイレクトを受信した場合、ほとんどの検索エンジンはターゲット URL (URL B) をクロールするだけで済みます。 302 リダイレクトが発生したときに検索エンジンがターゲット URL B を 100% クロールする場合、URL ハイジャックを心配する必要はありません。問題は、検索エンジン、特に Google が常にターゲット URL をクロールするとは限らないことです。たとえば、URL A は非常に短い場合がありますが、URL B への 302 リダイレクトが行われ、URL B は長くて乱雑な URL になり、疑問符などのパラメータが含まれる場合もあります。当然のことながら、URL A の方がユーザーフレンドリーですが、URL B は醜く、ユーザーフレンドリーではありません。現時点では、Google は URL A を表示する可能性が高くなります。検索エンジンのランキング アルゴリズムは単なるプログラムであり人間ではないため、302 リダイレクトに遭遇した場合、人間のようにどの URL がより適切であるかを正確に判断できず、URL ハイジャックの可能性が生じます。つまり、悪意のある人が自分の Web サイト A からあなたの Web サイト B に 302 リダイレクトを行います。何らかの理由で、Google 検索結果には引き続き Web サイト A が表示されますが、使用される Web ページのコンテンツはあなたの Web サイト B のコンテンツです。この状況は Web サイトの URL ハイジャックと呼ばれます。あなたが一生懸命書いた内容が他人に盗まれてしまいました。 302 リダイレクトによる URL ハイジャックは以前から存在していました。しかし今のところ、これより良い解決策はないようです。 302 リダイレクトの問題は、進行中の Google Big Daddy データセンター変換中に対処すべきターゲットの 1 つでもあります。一部の検索結果を見る限り、URLハイジャック現象は改善されてきていますが、完全に解決されたわけではありません。

一般的な意味は、検索エンジンのランキングに影響を与えるということであり、302 リダイレクトは、複数のドメイン名を使用して同じ Web サイトを指すものとして検索エンジンに誤解されやすく、Web サイトがブロックされる可能性があります。

つまり、本当に 302 を使用した一時的なリダイレクトでない限り、それ以外の場合は 301 を使用するのが最善です

参考資料

HTTP ステータス コード https://zh.wikipedia.org/wiki/HTTP ステータス コード

http ステータス コード 301 と 302 の詳細な説明と違い - 苦い探索の旅 http://blog.csdn.net/grandpang/article/details/47448395

302 リダイレクト http://baike.baidu.com/view/2453504.htm

注: この記事はオリジナルであり、転載を歓迎します。記事ページのわかりやすい位置にこの記事へのリンクを記載してください。
この記事が良いと思ったら、右下のおすすめをクリックしてください、ありがとうございます!
http://www.cnblogs.com/5207
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

< Progress>の目的は何ですか 要素? < Progress>の目的は何ですか 要素? Mar 21, 2025 pm 12:34 PM

この記事では、HTML< Progress>について説明します。要素、その目的、スタイリング、および< meter>との違い要素。主な焦点は、< Progress>を使用することです。タスクの完了と< Meter> statiの場合

< datalist>の目的は何ですか 要素? < datalist>の目的は何ですか 要素? Mar 21, 2025 pm 12:33 PM

この記事では、HTML< Datalist>について説明します。オートコンプリートの提案を提供し、ユーザーエクスペリエンスの改善、エラーの削減によりフォームを強化する要素。

HTML5のクロスブラウザー互換性のベストプラクティスは何ですか? HTML5のクロスブラウザー互換性のベストプラクティスは何ですか? Mar 17, 2025 pm 12:20 PM

記事では、HTML5クロスブラウザーの互換性を確保するためのベストプラクティスについて説明し、機能検出、プログレッシブエンハンスメント、およびテスト方法に焦点を当てています。

< meter>の目的は何ですか 要素? < meter>の目的は何ですか 要素? Mar 21, 2025 pm 12:35 PM

この記事では、html< meter>について説明します。要素は、範囲内でスカラーまたは分数値を表示するために使用され、Web開発におけるその一般的なアプリケーション。それは差別化< Meter> < Progress>およびex

HTML5フォーム検証属性を使用してユーザー入力を検証するにはどうすればよいですか? HTML5フォーム検証属性を使用してユーザー入力を検証するにはどうすればよいですか? Mar 17, 2025 pm 12:27 PM

この記事では、ブラウザのユーザー入力を直接検証するために、必要、パターン、MIN、MAX、および長さの制限などのHTML5フォーム検証属性を使用して説明します。

HTML5< time>を使用するにはどうすればよいですか 日付と時刻を意味的に表す要素? HTML5< time>を使用するにはどうすればよいですか 日付と時刻を意味的に表す要素? Mar 12, 2025 pm 04:05 PM

この記事では、html5< time>について説明します。セマンティックデート/時刻表現の要素。 人間の読み取り可能なテキストとともに、マシンの読みやすさ(ISO 8601形式)のDateTime属性の重要性を強調し、Accessibilitを増やします

ビューポートメタタグとは何ですか?レスポンシブデザインにとってなぜそれが重要なのですか? ビューポートメタタグとは何ですか?レスポンシブデザインにとってなぜそれが重要なのですか? Mar 20, 2025 pm 05:56 PM

この記事では、モバイルデバイスのレスポンシブWebデザインに不可欠なViewportメタタグについて説明します。適切な使用により、最適なコンテンツのスケーリングとユーザーの相互作用が保証され、誤用が設計とアクセシビリティの問題につながる可能性があることを説明しています。

< iframe>の目的は何ですか タグ?使用する際のセキュリティ上の考慮事項は何ですか? < iframe>の目的は何ですか タグ?使用する際のセキュリティ上の考慮事項は何ですか? Mar 20, 2025 pm 06:05 PM

この記事では、< iframe>外部コンテンツをWebページ、その一般的な用途、セキュリティリスク、およびオブジェクトタグやAPIなどの代替案に埋め込む際のタグの目的。

See all articles