HTTP status code は最初の桁で 5 つのクラス にグループ化され、正しいものを選べば client は body を解析せずに正しく反応できます。
text
2xx Success — リクエストが成功した
3xx Redirection — さらなるアクション / リソースが移動した
4xx Client error — 呼び出し側が何か間違えた
5xx Server error — サーバーが失敗した
実際に使うコード
2xx
HTTP status code は最初の桁で 5 つのクラス にグループ化され、正しいものを選べば client は body を解析せずに正しく反応できます。
2xx Success — リクエストが成功した
3xx Redirection — さらなるアクション / リソースが移動した
4xx Client error — 呼び出し側が何か間違えた
5xx Server error — サーバーが失敗した
2xx
200 OK — 一般的な成功 (GET、PUT、PATCH)。201 Created — リソースが作成された (Location ヘッダを返す)。202 Accepted — 非同期 処理のために受理、まだ完了していない。204 No Content — body なしの成功 (DELETE で一般的)。4xx
400 Bad Request — 不正な構文または無効な入力。401 Unauthorized — 未認証 (資格情報なし/無効)。403 Forbidden — 認証済みだが許可されていない。404 Not Found — リソースが存在しない。409 Conflict — 現在の状態と衝突 (例: 重複メール)。422 Unprocessable Entity — 整形式だが検証に失敗。429 Too Many Requests — レート制限。5xx
500 Internal Server Error — 予期しない server 障害。503 Service Unavailable — 一時的にダウン/過負荷。POST /users → 201 Created
Location: /users/42
DELETE /users/42 → 204 No Content
GET /users/999 → 404 Not Found
{ "error": "user not found" }
面接官が探る鍵となる区別: 401 (「あなたは誰?」) vs 403 (「あなたを知っているが、ダメ」)、そして 400 (不正な構文) vs 422 (有効な構文、無効なデータ)。
status code は REST レスポンスの主要なシグナルです — client、プロキシ、監視、retry ロジックがすべてそれを頼りにするので、正しくすることは相互運用性に不可欠です。よくある失敗は { "error": ... } body を伴う 200 OK を返すことです: 呼び出しが成功したか知るためにすべての client に body の解析を強い、汎用 HTTP ツールを壊し、監視から失敗を隠します。正確なコードは自動的な挙動も駆動します: 429 や 503 はよく作られた client にバックオフして retry するよう告げ、4xx は「retry するな、リクエストを直せ」と言います。面接官はこの質問で、HTTP を愚かな伝送路ではなく契約として理解しているか、微妙なペア (401/403、400/422) を正しく区別しているか — 実際の API を作り消費した人の証 — を確認します。
ジュニアからシニアまで、詳細な回答付きのIT面接質問ライブラリ。
寄付する