おーみんブログ

C#, ASP.NET Core, Unityが大好きです。

ステータスコード301と302の違いを調べてみた。

はじめに

ステータスコード300台はリダイレクトを表す値ですが、良く見る301と302の違いについて分からなかったのでこれを機に学んでみました。

301 Moved Permanently

ステータスコード301は「リクエストされたリソースがLocationヘッダーで示されたURLへ完全に(恒久的に)移動したこと」を指します。

301 Moved Permanently - HTTP | MDN

サイトの引越しとはちょっと違いますが、httpsでアクセスされることを期待されているページへhttpでアクセスした際にも使われたりするのでちょっと見てみましょう。

以下はZOZOTOWNのログイン画面でhttpアクセスした後のネットワークの状態です。
301リダイレクトが発生していることが分かりますね。

さらに中身を見てみるとレスポンスのLocationhttpsのURLが載っていることが分かります。

その後LocationにあったhttpsのURLへアクセスし、正常に200レスポンスが返ってきていることが分かります。

302 Found

ステータスコード302は「リクエストされたリソースが一時的にLocationヘッダーで示されたURLへ移動したこと」を指します。

302 Found - HTTP | MDN

おわりに

まとめると301は「完全なサイトの引越し」を表し、302は「一時的な引越し」を表すという感じでした。