【入門編】HTTPステータスコード301 Moved Permanentlyと302 Foundの挙動差 – HTTPプロトコル・通信規格実践ガイド

なぜ「301」と「302」があるの?リダイレクトの正体と使い分けをマスターしよう!

こんにちは!ネットワークの世界へようこそ。
Webサイトを見ていると、あるページを開いた瞬間に別のページへパッと切り替わることがありますよね。これを「リダイレクト」と呼びます。

エンジニアとして現場に出ると、必ずと言っていいほど「301にすべきか、302にすべきか」という議論にぶつかります。一見どちらも同じように「あっちへ行って!」と案内しているように見えますが、実は「その引越しが一生続くのか、それとも今日だけなのか」という、人生レベルの重みが隠されているんです。

今日は、郵便配達の仕組みに例えて、この二つのステータスコードの正体を紐解いていきましょう!

—

1. 郵便配達でイメージする「リダイレクト」

あなたが誰かに手紙を送る場面を想像してください。

301 Moved Permanently(恒久的なお引越し)

これは、「引っ越し先を役所に届け出て、転送届を出した状態」です。
相手はもう二度と元の住所には戻りません。郵便局員さんは「ああ、あの人はもうあそこにはいないんだな。新しい住所を記録して、これからは直接新しい住所へ届けよう」と学習しますよね。これが301です。

302 Found(一時的なお出かけ)

これは、「数日間だけ実家に帰省している状態」です。
「今の時期だけは実家にいるけど、また元の場所に戻ってくるよ」というサインです。郵便局員さんは「今はあっちにいるから届けてあげるけど、明日には戻るかもしれないから記録は変えなくていいや」と考えます。これが302です。

—

2. なぜこの違いが重要なのか?

「どっちでもいいじゃないか!」と思うかもしれませんが、ここにはWebの裏側の「効率」と「信頼」が関わっています。

ブラウザの「賢い」記憶力

ブラウザは非常に優秀で、一度301リダイレクトを経験すると、「あ、このページはもうあっちにあるんだな」と記憶(キャッシュ)します。 次回アクセスするとき、わざわざ元のページへ行かずに、最初から新しいページへ直行してくれるんです。これを「効率化」と呼びます。

逆に302の場合、ブラウザは「いつ戻るかわからない」ので、毎回律儀に元のページへ聞きに行きます。

SEO(検索エンジン)の評価

Googleなどの検索エンジンにとっても、この違いは重大です。

  • 301の場合: 「元のページの評価を、新しいページにすべて引き継ごう!」と判断してくれます。サイトのリニューアル時には必須のテクニックです。
  • 302の場合: 「今はたまたまあっちにいるだけだね。元のページの評価はそのままにしておこう」と判断します。

—

3. 実務で触れる設定例(Nginxの場合)

現場では、Webサーバーの設定ファイルでこれらを制御します。例えば、Nginxというサーバーソフトではこんな風に書きます。

301リダイレクト:恒久的な移動(例:ドメイン変更など)
permanent を指定すると、ブラウザに「ずっとあっちだよ!」と伝えます
location /old-page {
return 301 https://example.com/new-page; # 引っ越し完了!
}

302リダイレクト:一時的な移動(例:メンテナンス中など)
redirect を指定すると、「とりあえず今はあっちで待ってて!」と伝えます
location /maintenance {
return 302 https://status.example.com; # 一時避難中
}

—

4. 最後に:エンジニアとしてどちらを選ぶべきか?

迷ったときは、こう考えてみてください。

「この移動は、明日になっても元の場所が復活する可能性はあるか?」

  • 「もう二度と戻らない」なら、迷わず 301 です。
  • 「期間限定のキャンペーンや、メンテナンス中」なら、302 を選びます。

適当に選んでしまうと、ブラウザが勝手に「ずっとあっち」だと記憶してしまい、いざ元のページに戻したときに「あれ、なぜか古いページが表示されないぞ?」というトラブルになることもあります。

ネットワークの世界では、小さな数字の差が、あとで大きな影響を及ぼすことがあります。でも、一つずつこうして「理由」を理解していけば、決して怖いものではありません。

今日からWebサイトを見る時は、「お、これは301かな?302かな?」とチェックする癖をつけてみてくださいね。それがプロへの第一歩です!

コメント

タイトルとURLをコピーしました