重要なHTTPステータスコード

HTTPステータスコードとは、何かしらのリクエストを行った際に、
そのリクエストに対してWEBサーバから返ってくる3桁の数字のことで、
例えば、
・存在していないページにアクセスしようとした
・他ページへリダイレクトされた
・何かしらのエラーでサイトを表示できない
・サーバ側で何かしらのエラーが発生した
といった状態を表しています。

用意されているステータスコードの種類はかなり多い為、全てを理解して頭に入れておく必要はないですが、
よく目にする重要なステータスコードについては、覚えておくようにしましょう。

そこで、今回は、重要なステータスコードのみをまとめて、説明していきます。

因みに、重要なステータスコードは、
■200 OK
■301 Moved Permanently
■302 Found
■403 Not Forbidden
■404 Not Found
■500 Internal Server Error
くらいです。

他のステータスコードはどうでもいいという訳ではないですが、
取り合えず、覚えてくのはこのくらいでいいです。

200 OK

最もよく見かけるステータスコードで、リクエストが問題なく処理された場合に返されます。

例えば、ブラウザでWEBページにアクセスした際に、
目的のページを問題なく閲覧できれば、200というステータスコードが返ってきているはずです。

301 Moved Permanently

リクエストされたコンテンツのURLが変更された場合に使用されるステータスコードです。

例えば、
・サイトのリニューアルにより、既存ページのURLが変更になってしまった
・サイトドメインが変わってしまった
という場合には、
変更前のURLへアクセスされても、ページが表示されなくなってしまいます。

これは、SEO上良くないので、通常は、旧URLから新URLへの転送設定を行います。

この場合に301コードを返すようにしておけば、
旧URLの持っていたGoogleからの評価を新URLへも引き継げるので、
SEO上、最も重要なステータスコードと言えます。

因みに、301は「Moved Permanently」というステータスコードになりますが、
これは、よく「恒久的な移動」と訳され、
そのままの意味で、永久的にURLが変更になる場合に使用します。

もし、何かしらの理由で一時的に別URLへ転送させる場合には、
以下の「302 Found」を返すようにします。

302 Found

一時的に別のURLへ転送させる場合に使用するステータスコードです。

例えば、
サーバのメンテナンスの為に、一時的にメンテナンス画面へ転送させることがありますが、
その場合に、302を返すようにします。

他にも、
何かしらの理由で、ページを一時的に準備中にする場合にも、
302を返すようにします。

403 Not Forbidden

アクセス禁止にしているコンテンツや領域に、立ち入りろうとした場合に返ってくるステータスコードです。

で、この「403 Forbidden」が返される場面は多く、
・サーバ側でアクセス制限を掛けられている(IPアドレス制限など)
・会員制サイトへ非会員の状態でアクセスした
・ベーシック認証(BASIC認証)を通っていない
・ファイルのパーミッション設定ミス
・.htaccessのエラー
といった場合によく見られます。

その他にも、
・ドメインのDNS設定ミス
・サーバ側に障害が発生している
・インターネットに接続できていない
といった場合にも403コードが返されます。

また、最近では、セキュリティ対策の一環としてWAFを設定される場合も増えてきていますが、
このWAFの設定が原因で「403 Forbidden」になることも多々報告されています。

404 Not Found

リクエストしたコンテンツを見つけられなかった場合に返ってくるステータスコードです。

例えば、
・ブラウザからアクセスしたページのURLが間違っていた
・既存ページが、何らかの理由で削除されてしまった
という場合によく見られます。

この場合、
404エラーへの対策として、404ページを作成する場合が多いです。
https://deepdweb.com/404-page-make/

作成は必須ではないですが、余裕のある方は、作成することをおすすめします。

因みに、
既存ページが削除になった場合、転送先となる新ページが存在すのであれば、
301を返して、リダイレクト設定するようにしましょう。

もし、転送先となるページが存在しない場合に、
404ページへ転送させるようにして下さい。

500 Internal Server Error

500は、サーバ内部でエラーが発生している場合に返されるエラーコードです。

例えば、
・CGIスクリプトに文法エラーが発生している場合
・CGIスクリプトのパーミッションの設定が間違っている場合
 ※サーバ環境にもよりますが、一般的にはスクリプトの実行権限を設定する必要があるので、
  CGIスクリプトのパーミッションは「755」に設定する場合が多いです。
・.htaccessに記述ミスがある場合
によく見られます。

因みに、以下のような「Internal Server Error」の画面を見たことがある方も多いと思まいます。
500 Internal Server Error
この画面が表示されていると、500というステータスコードが返ってきているはずです。

500エラーは、開発者のミスで起こっていることも多々あるので、
サイトを公開する際には、「エラーが発生していないか?」しっかりとチェックするようにしましょう。

最後に

HTTPステータスコードは、かなり種類が多いので、すべて覚えておく必要はありませんが、
よく目にするステータスコードについては、頭に入れておくようにしましょう。

例えば、WEB制作の開発に携わっていると、
301302404といったステータスコードを自分で設定する機会も多々あります。

また、自分でCGIスクリプトの作成を行っていると、
500の「Internal Server Error」を目にする機会も多いです。

他のステータスコードについては、遭遇する機会もありますが、
頻度としてはそれほど高くないので、都度調べるようにすればOKです!