サーバ

ステータスコード(301や503など)を解説【必須の基礎知識】

課題を持った人
課題を持った人
私はWebフロントエンドの構築を中心に仕事をしているんだけど、リニューアル時のリダイレクト処理やサーバメンテナンス表示の対応などをするために、301や503の意味を覚えておいた方がいいと思ってます。私のようなWebフロントエンドをやっている人が覚えておいた方がいいステータスコードについて教えてください。

このような要望にお答えします。

まずはじめに、リクエスト/レスポンス型であるHTTPプロトコルにおいて、ブラウザにWebページが表示される仕組みを簡単に説明するとこのようになります。※クライアントはブラウザと読み替えていただいて問題ありません。

  1. クライアントからサーバにリソースをリクエストする
  2. サーバからクライアントにリクエストの結果をレスポンスする
  3. ブラウザがレスポンスの内容を解釈して表示する

レスポンスには大きく分けて5つのメッセージがあります。そのメッセージのことをステータスコードと呼びます。

  • 100番台 = 処理中
  • 200番台 = 成功
  • 300番台 = リダイレクト
  • 400番台 = クライアントエラー
  • 500番台 = サーバエラー

その中で最もよく使われているステータスコードをいくつか解説します。

200 OK (リクエスト成功)

リクエストが成功したことを示す

サーバがステータスコード「200 OK」を返す流れはこんな感じです。

  1. クライアント:リソースをリクエスト
  2. サーバ:リソースをレスポンス(200 OK)

URLにアクセスしてWebサイトが表示されたなら、「200 OK」が返ったのだと思っていいです。

301 Moved Permanently (リソースの恒久的な移動)

リクエストで指定したリソースが新しいURLに移動したことを示す

サーバがステータスコード「301 Moved Permanently」を返す流れはこんな感じです。

  1. クライアント:リソースをリクエスト
  2. サーバ:リソースは別のURLに移動したことをレスポンス(301 Moved Permanently)
  3. クライアント:②のレスポンスにあったURLを再度リクエスト
  4. サーバ:リソースをレスポンス

WebサイトのリニューアルなどでリソースのURLが変更になった時に、「301 Moved Permanently」ステータスコードを返すことは多いです。301を設定することでGoogleに移動前のURLの評価を引き継ぐことも可能です。

404 Not Found (リソースの不在)

指定したリソースが見つからないことを示す

サーバがステータスコード「404 Not Found」を返す流れはこんな感じです。

  1. クライアント:リソースをリクエスト
  2. サーバ:リソースが存在しないことをレスポンス(404 Not Found)

URLの間違いやリンク切れでリソースが見つからない場合に404が返されます。

503 Service Unavailable (サービス停止)

サーバがメンテナンスなどで一時的にアクセスできないことを示す

サーバがステータスコード「503 Service Unavailable」を返す流れはこんな感じです。

  1. クライアント:リソースをリクエスト
  2. サーバ:サーバメンテナンスでリソースに一時的にアクセスできないことをスポンス(503 Service Unavailable)

サーバメンテナンスで「503 Service Unavailable」を返す場合は、「サーバメンテナンス中:◯時◯分〜△時△分まで」などといったWebページを表示するように設定するのが一般的だと思います。

筆者
筆者
他にもたくさんステータスコードはありますが、僕の場合は301や503を使うことが多いです。基礎知識として覚えておくとトラブル時に原因が探りやすくなるので役に立つと思います。