BEETLE ツール一覧 HTTPステータス一覧
REFERENCE

HTTPステータス一覧

「この404、どういう意味のやつ?」
QAが遭遇するステータスコードを、テスト観点つきでまとめたよ。

2xx 成功 3xx リダイレクト 4xx クライアントエラー 5xx サーバーエラー 混同しやすいエラー

ステータスコードは「誰が悪いのか」を表す番号です。4xx はリクエスト側(=多くの場合フロントや入力)、5xx はサーバー側。切り分けの第一歩として、各コードでQAが何を確認すべきかを添えました。

2xx 成功 — リクエストは正常に処理された
200OK
リクエストが成功し、結果が返ってきた状態。一番よく見る正常応答。
QA 200でも中身が空・エラー文言が本文に入っている「中身だけ失敗」がある。ステータスだけで成功判定しない。
201Created
リクエストが成功し、新しいリソースが作成された。登録・投稿系のAPIで返る。
QA 作成後に実際にデータが増えているか、レスポンスに作成されたIDが含まれるかを確認。
202Accepted
リクエストは受け付けたが、処理はまだ完了していない。非同期・バッチ処理で返る。
QA 202のあと、処理完了をどう知るか(ポーリング・通知)。完了前の表示が正しいか。
204No Content
成功したが、返す本文がない。削除やお気に入り解除などで使われる。
QA 本文が空でも正常。フロントが本文を期待して落ちないか確認。
206Partial Content
一部だけを返した状態。動画のシーク再生や大きいファイルの分割ダウンロードで使われる。
QA 動画の途中再生・レジューム download が正しく動くか。
3xx リダイレクト — 別の場所へ案内
301Moved Permanently
恒久的な移転。URLが完全に変わったときに使う。検索エンジンも評価を引き継ぐ。
QA URL構成を変えたリリースで、旧URLが301で新URLに飛ぶか。SEO評価の引き継ぎに重要。
302Found
一時的な移転。元のURLは生きている前提。ログイン後のリダイレクト等で使われる。
QA 「恒久移転なのに302」だと検索評価が移らない。301/302の使い分けが意図通りか確認。
304Not Modified
前回から変わっていないので、キャッシュを使ってという応答。表示は速くなる。
QA 更新したのに古い表示が出る「キャッシュ事故」の原因になりがち。強制リロードで切り分け。
307Temporary Redirect
一時的な転送。302と違い、メソッド(POST等)を変えずにそのまま転送する点が厳密。
QA POST送信中のリダイレクトで、データが欠けず正しく転送先に届くか。
308Permanent Redirect
恒久的な転送。301に近いが、メソッドを変えずに転送する。
QA URL恒久移転で、フォーム送信も含めて転送先に正しく届くか。
4xx クライアントエラー — リクエスト側に問題
400Bad Request
リクエストの形式がおかしい。必須パラメータ不足・型違いなど。
QA 不正な入力で500ではなく400が返るか。エラー文言がユーザーに分かる内容か。
401Unauthorized
認証されていない=「あなたが誰か分からない」。未ログイン・トークン切れ。
QA トークン切れで401 → ログイン画面へ誘導されるか。403との違いに注意(401=未認証)。
403Forbidden
認証はされているが権限がない=「誰かは分かるが、それは許されていない」。
QA 一般ユーザーが管理APIを直接叩いて403になるか。URL直打ち・API直叩きでの権限テスト必須。
404Not Found
リソースが存在しない。URLの打ち間違い・削除済みデータへのアクセスなど。
QA 存在しないID・削除済みデータで404が返り、専用の404画面が出るか。500で落ちないこと。
405Method Not Allowed
そのURLに対して、使ったメソッド(GET/POST等)が許可されていない。
QA API仕様と実装でメソッドがズレていないか。GET専用にPOSTした場合の挙動。
409Conflict
現在の状態と矛盾する。重複登録・同時編集の衝突など。
QA メール重複登録・2人同時編集の保存で409が返り、適切なメッセージが出るか。
422Unprocessable Entity
形式は正しいが、内容(バリデーション)が通らない。多くのAPIで入力エラーに使う。
QA どの項目がなぜダメか、レスポンスにフィールド単位のエラーが含まれるか。
408Request Timeout
クライアントからのリクエストが時間内に届ききらなかった。回線が遅いときなど。
QA 低速回線・大きいファイル送信でタイムアウトしたとき、適切なエラーとリトライができるか。
410Gone
かつて存在したが、恒久的に削除された。404と違い「もう戻らない」を明示する。
QA 公開終了したページ・キャンペーンで、404ではなく410を返す設計か(仕様による)。
413Payload Too Large
送ったデータが大きすぎる。サイズ上限を超えたアップロードなど。
QA 上限超えファイルで413が返り、ユーザーに上限が分かるメッセージが出るか。
415Unsupported Media Type
対応していない形式を送った。許可外の拡張子・Content-Type など。
QA 許可外形式のアップロードで弾かれるか。許可形式の案内が出るか。
429Too Many Requests
短時間にリクエストが多すぎる。レート制限に引っかかった状態。
QA 連打・大量送信で429が返るか。ユーザーに「時間を置いて」と伝わるか。
5xx サーバーエラー — サーバー側に問題
500Internal Server Error
サーバー内部で想定外のエラー。原因は様々で、最も「中で何か壊れた」を表す汎用コード。
QA 入力ミスで500が出るのは黙ってバグ。本来400番台で返すべきものが500になっていないか要チェック。
502Bad Gateway
前段のサーバー(ロードバランサ等)が、後ろのサーバーから不正な応答を受けた。
QA デプロイ直後・再起動中に出やすい。再現条件(タイミング)をログとあわせて記録。
503Service Unavailable
一時的にサービスが使えない。メンテナンス中・過負荷など。
QA メンテナンス画面が正しく出るか。復旧後に自動で通常表示へ戻るか。
501Not Implemented
サーバーがそのリクエスト(機能)に未対応。実装されていないメソッドなど。
QA 未実装の機能を呼んだとき501で返るか、500と混同していないか。
504Gateway Timeout
後ろのサーバーからの応答が時間内に返ってこなかった。処理が重い・詰まっている。
QA 重い処理・大量データで504になるか。フロントでローディングが止まりタイムアウト表示が出るか。

混同しやすいエラー

ステータスコードに見えて、別物のエラー
CORSエラーしーおーあーるえすブラウザ
別オリジン(ドメイン)へのアクセスをブラウザがブロックした状態。サーバーは正常に応答していることも多く、HTTPステータスとは別レイヤーの制限。
確認: サーバーの許可ヘッダ(Access-Control-Allow-Origin)の設定。フロントの叩き先URL。
Mixed Contentみっくすどこんてんつブラウザ
https のページから http のリソースを読み込もうとしてブロックされる。画像が出ない・スクリプトが動かない原因に。
確認: 本番(https)で http:// のURL直書きが残っていないか。
ERR_CONNECTION / タイムアウトせつぞくえらーネットワーク
そもそもサーバーに到達できていない状態。ステータスコードすら返らない。URL誤り・サーバー停止・DNS・通信断など。
確認: 機内モード等で通信を切ったとき、アプリがクラッシュせずエラー表示できるか。

QAが実際に遭遇するHTTPステータスコードを中心に、意味と「テスト時に何を確認すべきか」をまとめています。

APIまわりの観点は TESTパターン集 の「API関数」セクションもあわせてどうぞ。

QA支援サービスについては → BEETLE合同会社トップ