ウェブサイトを見ているとき、突然「404 Not Found」と表示されたことはないでしょうか。あるいは、「500 Internal Server Error」や、「503 Service Unavailable」という文字を見て、戸惑った経験があるかもしれません。これらの数字は、HTTPステータスコードと呼ばれ、ウェブの通信がどうなったかを伝えるための、決まった番号です。この記事では、ステータスコードの基本的な読みかたと、よく見るコードの意味、困ったときの考え方を説明します。

HTTPステータスコードとは

ウェブサイトを見るとき、私たちのブラウザは、サーバー(サイトのデータを持っているコンピューター)に、「このページをください」と依頼を送ります。サーバーは、その依頼に対して、結果を返します。このとき、返事の先頭につけられる3桁の数字が、ステータスコードです。

たとえば、レストランで注文したときに、店員が「かしこまりました」「品切れです」「少々お待ちください」と返事をするのに似ています。ステータスコードは、サーバーからの返事の「結論」を、番号で簡潔に示すものです。

最初の桁で大まかに分かる

ステータスコードは、最初の1桁で、大まかな意味が分かれます。

- 1xx:情報(処理を続けています)

- 2xx:成功(うまくいきました)

- 3xx:転送(別の場所を見てください)

- 4xx:クライアントのエラー(依頼する側に問題があります)

- 5xx:サーバーのエラー(サーバー側に問題があります)

ここでの「クライアント」は、依頼を出す側、つまり利用者のブラウザやアプリを指します。「サーバー」は、依頼を受ける側です。

よく見るコードの意味

### 2xx:成功

- 200 OK:正常に処理できた。普通にページが表示されているときは、これ

- 201 Created:新しいデータが作られた(登録が完了したなど)

- 204 No Content:成功したが、返す内容はない

### 3xx:転送

- 301 Moved Permanently:ページが、恒久的に別の場所に移動した

- 302 Found:一時的に別の場所に移動している

- 304 Not Modified:前回から変わっていないので、保存済みのデータを使ってよい

ページの引っ越しがあったとき、古いアドレスにアクセスしても、自動的に新しいアドレスに案内されるのは、この転送のしくみのおかげです。

### 4xx:クライアント側のエラー

- 400 Bad Request:依頼の形が正しくない

- 401 Unauthorized:認証(ログインなど)が必要

- 403 Forbidden:認証されていても、アクセスが許可されていない

- 404 Not Found:指定されたページが見つからない

- 405 Method Not Allowed:その方法での依頼は許されていない

- 408 Request Timeout:依頼の送信に時間がかかりすぎた

- 429 Too Many Requests:短時間に依頼を送りすぎた

最もよく見かけるのが404で、アドレスの入力間違い、ページの削除、リンク切れなどで起こります。

### 5xx:サーバー側のエラー

- 500 Internal Server Error:サーバー内部で、何らかの問題が起きた

- 502 Bad Gateway:中継役のサーバーが、不正な返事を受け取った

- 503 Service Unavailable:サーバーが一時的に使えない(混雑や、メンテナンス)

- 504 Gateway Timeout:中継役のサーバーが、待っても返事が来なかった

5xxは、利用者側ではなく、サイトの運営側の問題であることが多いです。

見かけたときの対処法

### 利用者として

- 404の場合:アドレスに間違いがないか確認する。サイトのトップページから探し直す

- 403の場合:アクセス権限がないので、許可が必要か確認する。ログインし直す

- 401の場合:ログインが必要。ログインし直す

- 429の場合:しばらく待ってから、もう一度試す

- 500番台の場合:時間をおいて、再読み込みする。サイトの運営の発表を確認する

- ネットが原因のこともあるので、別のサイトが見られるかも確認する

### サイトの運営者として

- 404が多く出ているなら、リンク切れや、ページの移動を見直す

- 301や302の転送を適切に設定する

- 500番台は、サーバーのログを確認し、原因を調べる

- 503は、メンテナンス中であることを、利用者に分かりやすく知らせる

- エラーのページを、親切に作る(トップへ戻る案内など)

開発者にとっての意味

ウェブの開発をする人にとって、ステータスコードは、通信の状態を判断する大事な手がかりです。ブラウザの開発者ツールを開くと、通信ごとのステータスコードが確認できます。エラーの原因を探すときの、第一歩になります。

まとめ

- ステータスコードは、ウェブの通信の結果を表す3桁の番号

- 2xxは成功、3xxは転送、4xxは依頼側の問題、5xxはサーバー側の問題

- 404は見つからない、500はサーバー内部のエラー、503は一時的に使えない

- 対処法は、コードの種類によって違う

数字の意味を覚えておくと、トラブルのとき、原因を落ち着いて考えられます。

※この記事は一般的な解説であり、私が実際に測定した数値ではありません。コードの使われ方は、サイトやサーバーの設定によって異なる場合があります。