よく見るHTTPステータスコードまとめてみた

2024.06.24.月
HTML

こんにちは。入社2年目の山本崇史です。

PHPを触っていると避けては通れないものの一つにHTTPステータスコードがあります。その中でも個人的によく見かけるものをざっくりまとめてみました。エラーが出たときはひとまず何番のエラーが出ているか確認してみましょう。

HTTPステータスコードとは

特定のHTTPリクエストが正常に完了したかどうかを示す3桁の数字のこと。

大雑把に紹介すると次の5つに分類されます:

  • 1xx(情報レスポンス)
  • 2xx(成功レスポンス)
  • 3xx(リダイレクトメッセージ)
  • 4xx(クライアントエラーレスポンス)
  • 5xx(サーバエラーレスポンス)

個人的によく見るのは、成功した時の200、エラーが出た時の400、500番台あたり。

もっと詳しく

1xx(情報レスポンス)

100番台は特に見かけることがなく、あまり馴染みがないですが、1つだけ紹介してみます。

100 Continue

暫定レスポンス。その時点までの全てに問題がなく、クライアントはリクエストを継続できることを示す。

2xx(成功レスポンス)

200 OK

リクエストが成功したことを示す。上手くいっているときはこれが出るはず。

3xx(リダイレクトメッセージ)

301 Moved Permanently

リクエストされたリソースのURLが永遠に変更されたことを示す。ウェブサイトが移転したときなどに用いられる。

302 Found

リクエストされたリソースが一時的に移動されているときに返される。

304 Not Modified

キャッシュ用に使用される。リクエストしたリソースが更新されていないことを示す。

4xx(クライアントエラーレスポンス)

400 Bad Request

サーバがクライアントのリクエストを理解できないことを示す。

403 Forbidden

リソースにアクセスすることを拒否されたときに返される。アクセスする権限がない場合などに用いられる。

404 Not Found

サーバがリクエストされたリソースを発見できないことを示す。

419 Invalid CSRF tokens
無効なCSRFトークン。Laravelで使用される。個人的にはまだ出会ったことはないが、今後出会うかもしれないので紹介。

422 Unprocessable Content

サーバに渡されたデータに誤りがあり、適切に処理を完了できなかったときに返される。

429 Too Many Requests

一定時間に大量のリクエストを送信したために、サーバが処理を拒否する場合に返される。Laravelの場合、同一ユーザまたは同一IPからのリクエストが1分間に60回を超えると出る設定になっている(調整可能)。特にAPIを呼び出すときに注意したい。

5xx(サーバエラーレスポンス)

500 Internal Server Error

サーバ内部でエラーが発生した場合に返される。おそらく最もよく見かけるエラー。これだけだと何が起きているのか把握しきれないので、コードやログなどを確認する必要がある。

502 Bad Gateway

ゲートウェイやプロキシとして機能するサーバが上流のサーバから無効なレスポンスを受け取ったことを示す。

開発をしていて出会ったことはないですが、インターネットで調べ物をしているときにたまにこういうエラーが表示されるサイトがあったりします。

503 Service Unavailable

サービスが一時的に過負荷やメンテナンスで使用不可能であるときに返される。Laravelではphp artisan downでメンテナンスモードに切り替えたときに出てくる。

504 Gateway Timeout

ゲートウェイやプロキシとして機能するサーバが上流のサーバから時間内に適切なレスポンスを受け取ることができなかったことを示す。

最後に

他にもHTTPステータスコードはたくさんあります。HTTP Catsの猫に癒されながら、楽しく学んでいきましょー!!

参考

HTTP Cats
https://http.cat

http.cat (GitHub)
https://github.com/httpcats/http.cat

ライセンス
https://github.com/httpcats/http.cat/blob/master/LICENSE

HTTP レスポンスステータスコード - HTTP | MDN
https://developer.mozilla.org