なぜ「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かな?」とチェックする癖をつけてみてくださいね。それがプロへの第一歩です!
コメント