HTTPステータスコードの使い分けを解説

スポンサーリンク

こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在5社経験している、15年目エンジニアです。

この記事では、よく使うステータスコードの違いをまとめてみました!
ご参考になれば幸いです。

400 Bad Request と 422 Unprocessable Entity の違い

まぎらわしいのがこの2つかなと思います。
400は、リクエスト自体が不正なときです。
422は、内容が業務的に不正なときです。

具体例はこんな感じです。

  • URLのパスが「/index」が正しいのに「/inde」 → 400
  • 指定するパラメータidはint型しか許容してないのにstring型だった → 422

1点注意事項です。
バリデーションエラーは、400と422どちらを返すのかはプロジェクトで異なります。
バリデーションエラーは何を返すのが適切なのかは、プロジェクトのルールを確認してみてください。

401 Unauthorized と 403 Forbidden の違い

ここも混乱しやすいポイントかなと思います。
401は、ログイン情報がないときです。
403は、認証はしてるけど権限がないときです。

具体例はこんな感じです。

  • 認証トークンがない → 401
  • 認証トークンはあるけど権限が一般ユーザー → 403

500 Internal Server Error を使うとき

500 は「サーバー側の予期しないエラー」です。
つまり、アプリが想定していない予期しない問題が起きたときに使います。
なので

  • プログラム不具合が原因のエラー
  • CPUやメモリのリソース不足
  • アクセスするディレクトリの権限エラー

こういうケースで500を使うのが良いと思います!

まとめ:HTTPステータスコードはエラーで使い分けよう!

以上がHTTPステータスコードの使い分けの解説でした!

HTTPステータスコードは

  • 誰の問題か(クライアント or サーバー)
  • どんな種類の問題か(形式・認証・権限・予期せぬエラー)

で選ぶのがポイントです。

あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ

コメント

タイトルとURLをコピーしました