はじめに
WebアプリケーションやAPIを扱っていると、クライアント側のエラー(4xx)に加えて、サーバー側のエラー(5xx)もよく遭遇します。
個人の備忘録程度の走り書きとなっておりますが、温かい目で見守っていただければ幸いです。
この記事では、サーバーエラーに特化して、その意味や原因、対処方法を整理しておきます。
サーバーエラー(5xx)とは?
HTTPステータスコードの「5xx」番台は、リクエストは正しいが、サーバー内部で問題が発生した場合に返されます。原因はサーバー側にあるため、クライアント側では直接解決できないことが多いです。
参考文献
代表的な5xxステータスコード一覧
500 Internal Server Error
- サーバー内部で予期しないエラーが発生
- 最も一般的な5xxエラー
- 原因例:アプリケーションのバグ、スクリプトの例外、権限不足
501 Not Implemented
- サーバーがリクエストされたメソッドをサポートしていない
- 例:PUTやPATCHがサポートされていないWebサーバーに対するリクエスト
502 Bad Gateway
- ゲートウェイやプロキシサーバーが無効なレスポンスを受け取った場合に発生
- 例:リバースプロキシ(例:NGINX)がバックエンドから不正な応答を受信
503 Service Unavailable
- サーバーが一時的に過負荷、またはメンテナンス中で利用不可
- 再試行すれば回復する可能性がある
504 Gateway Timeout
- ゲートウェイやプロキシサーバーが応答を待ってタイムアウト
- 例:API GatewayがLambda関数のタイムアウトを迎えた場合
505 HTTP Version Not Supported
- サーバーがリクエストで使用されたHTTPバージョンをサポートしていない
よくある原因と対策
ステータスコード | 原因例 | 対処方法 |
---|---|---|
500 | アプリの例外発生、設定ミス | ログ確認、コード修正 |
502 | バックエンドがダウン | バックエンドの状態確認 |
503 | 過負荷、メンテナンス中 | リソース増強、Auto Scaling |
504 | 外部APIの応答遅延 | タイムアウト設定見直し |
まとめ
5xxエラーはサーバー側の問題であり、発生時にはログ解析やインフラ構成の見直しが必要です。
特に、500番系エラーは開発中・本番環境問わず頻出するため、原因特定のためにエラーログを活用し、根本原因を突き止める力を身につけておくことが重要です!