0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ステータスコードの基本構造

0
Posted at

HTTPリクエストのステータスコードについて勉強する機会があったので自分用の備忘


■ 基本構造

HTTPステータスコードは3桁で、最初の1桁で種類が決まる👇

先頭 意味
1xx 情報(ほぼ使わない)
2xx 成功
3xx リダイレクト
4xx クライアントエラー
5xx サーバエラー

■ よく使うステータスコード(実務目線)

✅ 2xx(成功)

  • 200 OK
    → 正常に処理完了(最も基本)

  • 201 Created
    → 新規作成成功(POSTでよく使う)

  • 204 No Content
    → 成功だけど返すデータなし(DELETEなど)

👉 補足
「200しか使わないAPI」は初心者あるある(あまり良くない)


🔁 3xx(リダイレクト)

  • 301 Moved Permanently
    → 永久的にURL変更(SEOに影響あり)

  • 302 Found
    → 一時的に別URLへ

  • 304 Not Modified
    → キャッシュ使ってOK(通信節約)

👉 補足
301と302はブラウザの挙動・SEOが違うので重要


❌ 4xx(クライアント側のミス)

  • 400 Bad Request
    → リクエストの形式がおかしい

  • 401 Unauthorized
    → 認証してない(ログインしてない)

  • 403 Forbidden
    → 権限がない(ログインしてるけどダメ)

  • 404 Not Found
    → URLやリソースが存在しない

👉 超重要な違い👇

  • 401:そもそも認証されてない
  • 403:認証済みだけど権限なし

💥 5xx(サーバ側のミス)

  • 500 Internal Server Error
    → サーバ内部で例外発生

  • 502 Bad Gateway
    → サーバ間通信エラー(API連携失敗など)

  • 503 Service Unavailable
    → サーバ停止中・過負荷

👉 補足
5xxは「ユーザーのせいじゃない」


■ 実務でのイメージ(重要)

あなたの理解を一段レベルアップさせると👇

🔵 200系

👉「処理は成功しました」

🔵 300系

👉「別の場所見て」

🔵 400系

👉「お前のリクエストおかしい」

🔵 500系

👉「サーバがやらかした」


■ よくある誤解(ここ大事)

❌ NGパターン

  • エラーなのに200返す
  • 全部500にする
  • 401/403を区別しない

👉 これやると

  • フロントが正しく制御できない
  • デバッグ地獄になる

■ あなたの理解チェック(軽く厳しめ)

書いてくれた内容は正しいですが👇

  • 「302=Moved Temporarily」は古い表現(今は"Found"が主)
  • 400が抜けている(実務でめちゃ重要)

👉 ここ補えばかなり良い理解レベル


■ さらに一歩(中級者向け)

API設計では👇もよく使う

  • 422 Unprocessable Entity(バリデーションエラー)
  • 409 Conflict(データ競合)
  • 429 Too Many Requests(レート制限)

■ まとめ

ステータスコードはただの数字ではなく👇

👉 「責任の所在」を示すもの

  • 4xx → クライアントの責任
  • 5xx → サーバの責任

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?