APIを叩いてエラーが返ってきたとき、私が最初に見るのはステータスコードです。
ただ、200や404くらいは分かっても、301・401・429・502あたりになると「これ何だっけ」と毎回つまずいていました。
数字をひとつずつ暗記するのは大変なので、今回は最初の1桁で大づかみに分類する考え方を、エンジニア目線で整理します。
ステータスコードは「最初の1桁」で5つに分かれる
HTTPステータスコードはRFC 9110で定義された3桁の数字で、先頭の数字を見れば大まかな意味がつかめます。
- 1xx(情報):処理が継続中であることの通知
- 2xx(成功):リクエストは正常に処理された
- 3xx(リダイレクト):別の場所へ案内する、または追加の操作が必要
- 4xx(クライアントエラー):こちらが送ったリクエストに問題がある
- 5xx(サーバーエラー):サーバー側で問題が起きている
ここで効いてくるのが、4xxは「こちら側」、5xxは「向こう側」という切り分けです。
原因の所在が1桁目で見当つくので、ログを追う前にあたりをつけられるのが大きいところ。
実務でよく出会う番号
全部を覚える必要はなくて、よく出る番号だけ押さえておけば実務はだいたい回ります。
- 200 OK:成功の定番
- 201 Created:POSTでリソースを新規作成できた
- 204 No Content:成功したが返す本文はない
- 301 Moved Permanently / 302 Found:恒久・一時的なリダイレクト
- 304 Not Modified:キャッシュが有効で再取得は不要
- 400 Bad Request:リクエストの形式がおかしい
- 401 Unauthorized:認証が通っていない(未ログイン状態)
- 403 Forbidden:認証は済んでいるが権限がない
- 404 Not Found:リソースが見つからない
- 429 Too Many Requests:レート制限に引っかかった
- 500 Internal Server Error:サーバー内部で起きたエラー
- 502 Bad Gateway / 503 Service Unavailable:上流の不調や一時的な応答不可
401と403は混同しやすい番号ですが、401は「あなたが誰か分からない」、403は「誰かは分かるが入れない」と覚えると整理できます。
4xxと5xxを切り分けると対応が早い
障害対応でまず見るべきは、4xxか5xxかという一点です。
4xxで真っ先に疑うのは、パラメータや認証ヘッダ、URLといった自分のリクエスト側。
一方の5xxはサーバー側の問題なので、時間を置いてリトライする価値があります。
特に429や503は、少し待ってから再試行すると回復することが多い番号でした。
この再試行のコツは、指数バックオフとして別記事で整理しています。
手元で素早く確認したいときは、curlでhttp_codeだけを抜き出すのが便利です。
# レスポンス本文は捨ててステータスコードだけ表示
curl -o /dev/null -s -w "%{http_code}\n" https://example.com
# 200 が返れば成功、404 や 500 ならそこから原因を切り分ける
最後に
ステータスコードは、先頭1桁で誰の問題かを見分けるのが第一歩になります。
細かい番号で迷ったら、MDNのステータスコード一覧やRFC 9110を引けば、まず間違いありません。
以上です。










コメントを残す