こちらの記事では300番代のステータスコード(以下、ステータスコード3xx)について解説を行います。
ステータスコード3xxは、「リダイレクト(転送)」が行われた事を表します。例えばブログのコンテンツを移転した場合に、移転先にリクエストを転送していることを表す用途があります。
httpステータスコードについての解説ははこちらの記事をご覧ください。
https://envader.plus/article/29
主要なステータスコード3xx
- 301 Moved Permanently
- 304 Not Modified
- 308 Permanent Redirect
301 Moved Permanently
301 Moved PermanentlyとはWebサイトの移転に伴って旧URLから新URLに変更した際に、恒久的なURL変更を表すステータスコードです。
例えばWebサイトのURLを「example.com/aaa」から「example.com/bbb」に変更した際に、旧URLから新URLへこの301を設定しておくと旧URLへアクセスがあっても自動的に新URLへ転送を行なってくれます。301設定を行なっているとSEO(Search Engine Optimization)の評価も引き継ぐ事が出来る為、サイト移転を行なった際は301設定を行う事をおすすめします。
304 Not Modified
304 Not Modifiedとは前回Webサイトを訪れた時からページの内容が未更新なことを表すステータスコードです。
サイトに初めてアクセスを行なった時にブラウザはキャッシュとしてWebサイトの情報を保存します。その後再度同じWebサイトにアクセスを行う場合はそのキャッシュデータを基にページを表示しますが、その際に前回アクセスした時からサイトの更新がされていない場合はキャッシュデータからWebサイトを表示し、ステータスコード304を返します。その為サーバーからのコンテンツダウンロードが不要となり、より高速にWebページを表示出来ます。
308 Permanent Redirect
308 Permanent Redirectとは301 Moved Permanentlyとほぼ同じでリクエストされたリソースのURLが恒久的に変更されたことを表します。
301との違いはHTTPメソッドをPOSTからGETに変えられないという事があります。古くから存在する301ではHTTPメソッドの変更が可能で不正にPOSTからGETに変更されてしまうリスクがありました。対して新しく出来た308ではHTTPメソッドの変更が出来ない為、301と同じく恒久的なURL変更をあらわしつつも301よりも厳格なステータスコードといえます。ただし旧バージョンのブラウザなど、一部未対応のブラウザも存在するため注意が必要です。
ステータスコード3xx一覧表
次が3xxステータスコードの一覧です。他のコードと比べてコード数も少なく、比較的覚えやすいコードですが内容が類似したコードも存在するため注意が必要です。
コード番号 | 意味 | 説明 |
---|---|---|
300 | Multiple Choices | リクエストしたリソースが複数存在し、ユーザやユーザーエージェントに選択肢を提示するときに返されます。 |
301 | Moved Permanently | リクエストされたリソースのURLが恒久的に変更されたことを表します。 |
302 | Found | リクエストされたリソースのURLが一時的に変更されたことを表します。 |
303 | See Other | リクエストされたリソースが別のURLに存在する場合に返されます。 |
304 | Not Modified | リクエストしたリソースが更新されていない場合に返されます。 |
305 | Use Proxy | プロキシを使用してリクエストを行わなければならない場合に返されます。 |
306 | Unused | 旧バージョンのHTTP仕様で使用されていましたが現在は使用されず、コードは予約されています。 |
307 | Temporary Redirect | 302とほぼ同じでリクエストされたリソースのURLが一時的に変更された事を表します。302との違いは使用するHTTPメソッドを変更してはならない点です。 |
308 | Permanent Redirect | 301とほぼ同じでリクエストされたリソースのURLが恒久的に変更されたことを表します。301との違いは使用するHTTPメソッドを変更してはならない点です。 |
まとめ
今回はHTTPステータスコード300番台の意味について解説をしました。
ステータスコード3xxはリダイレクト(転送)が行われた事を表します。
ステータスコード3xxはエラーコードと違い、画面上に表示がされない為あまり目にする機会がありません。ですが普段よく目にするリダイレクト(転送)時には裏で3xxのステータスコードが返されている為、一度ブラウザの開発者モードなどで確認をしてみましょう。
主要なステータスコード3xxとして次を学びました。
- 301 Moved Permanentlyはサイト移転時に恒久的な移転を表す事
- 304 Not Modifiedは前回訪問した時からサイトの更新がなく、キャッシュから表示されている事
- 308 Permanent RedirectはHTTPメソッドの変更が行えない、より厳格な恒久的URL変更を表す事
SEO(Search Engine Optimization)とはGoogleなどで検索をした時に検索上位に表示されるようにサイトを改善することです。
SEOのメリットとして検索流入数増加による売り上げの上昇や、検索上位に表示される=Googleがそのサイトを信用している証となりサイトの評価にも繋がります。検索上位に表示される為には検索エンジンがインデックスするURLはユーザーが閲覧できることが大前提となります。その為ステータスコードによるサイトの状況把握を行い、サイト移転事などは301設定を行う事でSEOの評価を引き継ぐようにしましょう。
【番外編】USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話
プログラミング塾に半年通えば、一人前になれると思っているあなた。それ、勘違いですよ。「なぜ間違いなの?」「正しい勉強法とは何なの?」ITを学び始める全ての人に知って欲しい。そう思って書きました。是非読んでみてください。
「フリーランスエンジニア」
近年やっと世間に浸透した言葉だ。ひと昔まえ、終身雇用は当たり前で、大企業に就職することは一種のステータスだった。しかし、そんな時代も終わり「優秀な人材は転職する」ことが当たり前の時代となる。フリーランスエンジニアに高価値が付く現在、ネットを見ると「未経験でも年収400万以上」などと書いてある。これに釣られて、多くの人がフリーランスになろうとITの世界に入ってきている。私もその中の1人だ。数年前、USBも知らない状態からITの世界に没入し、そこから約2年間、毎日勉学を行なった。他人の何十倍も努力した。そして、企業研修やIT塾で数多くの受講生の指導経験も得た。そこで私は、伸びるエンジニアとそうでないエンジニアをたくさん見てきた。そして、稼げるエンジニア、稼げないエンジニアを見てきた。
「成功する人とそうでない人の違いは何か?」
私が出した答えは、「量産型エンジニアか否か」である。今のエンジニア市場には、量産型エンジニアが溢れている!!ここでの量産型エンジニアの定義は以下の通りである。
比較的簡単に学習可能なWebフレームワーク(WordPress, Rails)やPython等の知識はあるが、ITの基本概念を理解していないため、単調な作業しかこなすことができないエンジニアのこと。
多くの人がフリーランスエンジニアを目指す時代に中途半端な知識や技術力でこの世界に飛び込むと返って過酷な労働条件で働くことになる。そこで、エンジニアを目指すあなたがどう学習していくべきかを私の経験を交えて書こうと思った。続きはこちらから、、、、
エンベーダー編集部
エンベーダーは、ITスクールRareTECHのインフラ学習教材として誕生しました。 「遊びながらインフラエンジニアへ」をコンセプトに、インフラへの学習ハードルを下げるツールとして運営されています。