HTTPステータスコード(Webサーバーのエラーコード)について、よく発生するものをまとめておきます。
以下の構成を想定しています。
構成1: レンタルサーバー(ConoHa VPS)、CentOS 8(LAMP)、WordPress 5.X
構成2: Raspberry Pi Webサーバー(ローカルネットワーク)
背景
レンタルサーバーを契約してサイトを運用しています。また、自宅のローカルネットワークでは、Raspberry Pi や Windows を使った Webサーバーなども動かしています。
Web サーバーを動かして技術検討をしていると、ブラウザやコンソール上でサーバーのエラーをよく経験します。そこで、よく出てくるエラーコード(HTTPステータスコード)と対応例をピックアップして、パターンをまとめておくことにします。
HTTP ステータスコード
HTTP ステータスコードの5つのクラス
HTTPステータスコードは、何番台かにより5つのクラスが規定されています。まとめておきます。
100番台: ブラウザによるリクエストがあった
200番台: サーバーによりリクエストが受信された
300番台: リダイレクトがあった(リソースが置き換わった)
400番台: クライアント側のエラーが生じた
500番台: サーバー側のエラーが生じた
エラーの具体例
上記の5つのクラスの中で、エラーは400番台と500番台となっています。そこで、よく経験する具体的なコードをピックアップし、典型的な対応例をまとめておくことにします。
HTTPステータスコード | 内容 | 具体例 | 対応例 |
---|---|---|---|
403 Forbidden | クライアント側のアクセスが禁止されている/アクセス権がない | ① 参照しているファイル/CGIにユーザーのアクセス権が与えられていない ② メンテナンス等でWebサーバー側がアクセスを禁止した |
① chmod コマンドでアクセス権を設定する ② Webサーバーが稼働していることを確認する |
404 Not Found | リクエスト先のリソース/ページが存在しない | ① ブラウザに入力したURLが間違っている ② ページが削除されている ③ WordPress のパーマリンクの設定を間違えた/変更した ④ WordPressの管理画面に入れなくなった |
① (ユーザーのミス) ② 404のエラー用のページを作っておく ③、④ WordPress、サーバーの設定を確認する |
408 Request Timeout | リクエストの待機後、時間切れになった | ① ページのデータが重すぎる ② サーバーが混雑している |
① ページのデータを削減する ② サーバーの負荷状態・グレードアップを検討する |
500 Internal Server Error | サーバー内部で何らかの問題が生じてリクエストを完了できない | サーバーの設定を変えた サーバーのプログラムをアップグレードをして正常動作しなくなった |
サーバー本体やWebサーバーアプリ(Apache)が正常に動作していることを確認する ファイルの権限を確認する |
503 Service Unavailable | サーバーが一時的に利用できない | アクセス数/負荷が上限に達した | サーバーの負荷状態・グレードアップを検討する |
まとめ
サーバーの検討を始めた初期の頃、エラーコードと対処方法が1つに集約されたものがあったらよいのにと思っていました。そこで、よく経験する典型的なエラーコードについてまとめてみました。
レンタルサーバー(ConoHa VPS)、ワードプレス、ラズパイなど、形を変えて異なる環境でサーバーを動かしてみると(エラーを経験すると)、とても理解が深まるように思います。
関連リンク
・ “500 internal server error” が表示されたとき 【Linux】
・ アップグレード後に 500 エラーが出たとき 【Linux】
・ 記事リンクで「NOT FOUND 404」と表示されたとき
・ Raspberry Pi でローカルWebサーバー 【Python 活用】
・ パーミッション関連でよく使うコマンド 【Linux】
関連リンク
・ https://en.wikipedia.org/wiki/List_of_HTTP_status_codes
※ エラーコードについては wikipedia がよくまとまっています。
![]() |
本気で学ぶ Linux実践入門 サーバ運用のための業務レベル管理術 新品価格 |