はじめに
HTTPステータスコードは、サーバーからクライアント(ブラウザなど)に返される通信結果の番号です。
特に「エラー」と呼ばれるのは4xxと5xxが多いです。
アプリを外部に公開する際のサーバー側の設定をするときなどに個人的によく見かけたものをまとめています。
4xx系(クライアントエラー)
ユーザーのリクエスト内容に問題がある場合
コード | 意味 | 主な原因 | 対処例 |
---|---|---|---|
400 Bad Request | 不正なリクエスト | パラメータやリクエスト形式が間違っている | URL・クエリパラメータ・JSON形式の確認 |
401 Unauthorized | 認証が必要 | ログインしていない / APIキーなし | ログインやAPIキーの設定 |
403 Forbidden | アクセス禁止 | 権限不足 / ディレクトリやファイルのアクセス制限 | サーバーの権限設定やアクセスルール確認 |
404 Not Found | ページやファイルが存在しない | URL間違い / ファイル削除済み | URL修正、ファイルアップロード |
405 Method Not Allowed | 使用したHTTPメソッドが許可されていない | GET/POSTなどの使い分けミス | サーバー設定やAPI仕様を確認 |
408 Request Timeout | リクエストの時間切れ | 通信が遅すぎる | 再送、ネットワーク状況改善 |
429 Too Many Requests | リクエスト過多 | API制限超過 | 待機して再試行、レート制限緩和 |
5xx系(サーバーエラー)
サーバー側の処理に問題がある場合
コード | 意味 | 主な原因 | 対処例 |
---|---|---|---|
500 Internal Server Error | サーバー内部エラー | コードのバグ / 設定ミス | サーバーログ確認、コード修正 |
502 Bad Gateway | ゲートウェイエラー | リバースプロキシの先のサーバーが応答なし | バックエンドの起動確認 |
503 Service Unavailable | サービス利用不可 | メンテ中 / サーバー過負荷 | 待機、負荷分散 |
504 Gateway Timeout | ゲートウェイの応答待ちでタイムアウト | バックエンドの応答遅延 | 処理高速化、タイムアウト時間延長 |
覚えておくと便利な2xx・3xx
エラーじゃないけどよく見るもの
コード | 意味 | 主な利用シーン |
---|---|---|
200 OK | 正常応答 | 通常の成功レスポンス |
201 Created | 新規作成成功 | POSTでリソース作成 |
301 Moved Permanently | 恒久的リダイレクト | サイトURL変更 |
302 Found | 一時的リダイレクト | ログイン後の画面遷移 |
304 Not Modified | 更新なし | キャッシュ利用 |
ざっくりまとめると
- 4xx → 「こっちの(クライアント)ミス」
- 5xx → 「向こうの(サーバー)ミス」
- 2xx/3xx → エラーではなく正常系やリダイレクト系
200 OKを見るとホッとするのは私だけですか?