🤯

ステータスコード全然わからない

2024/12/16に公開

Social Databank Advent Calendar 2024 の 16 日目です。

こんにちは

ステータスコード使いこなしてますか?
200,201,202,204のステータスコードの違いを空で言えますか?
言えたらすごいです!
私はステータスコードが何使って良いのかわからない勢なので、覚えておくと自慢できそうなステータスコードをまとめます!?
RFC9110をチラ見しながら作成していきます。

早見表

ステータスコード 名前 説明
200 OK リクエスト成功
201 Created リクエストの成功して1個以上のリソースが作られた。(Postメソッドへのレスポンス)
202 Accepted リクエストは受理されたが、処理は非同期に処理される。処理が許可されないかも。
204 No Content リクエストの成功。レスポンスは空。[1]
300 Multiple Choices データが複数あって一つに絞れない。もっと良いURIがあったらLocationフィールドでかえす。
301 Moved Permanetly URIの恒久的な変更。Locationヘッダーに移動先が含まれる。[2]
302 Found 一時的なURIの変更。Location同上。
303 See Other Locationヘッダでリダイレクトを促してる。GetもしくはHeadのメソッドを使うように指定。
304 Not Modified ブラウザ側の持つキャッシュデータからの変更がない。
307 Temporary Redirect 一時的な変更。Locationヘッダ指定のURIに移動する際にはメソッド変更を許さない。
308 Permanent Redirect 永続的な変更。Locationヘッダ指定のURIに移動する際にはメソッド変更を許さない。
400 Bad Request 400番台の他のコードで表現できないエラー[3]
401 Unauthorized 認証エラー
403 Forbidden 認可エラー
404 Not Found データが存在しない。何が存在しないかは人によって解釈が広い。
405 Method Not Allowed URIは存在してても、メソッドが許可されていない。
406 Not Acceptable JSONやXMLなどのレスポンスとして返すデータ形式に対応してない。
408 Request Timeout サーバサイドのタイムアウト
409 Conflict ID指定の新規作成の際にIDが被ってる。メアド被りなど。
410 Gone かつてはあったURIだがもうなくなってる。
413 Request Entity Too Large リクエストのボディがデカすぎる
414 Request-URI Too Long リクエストのクエリパラメータがデカすぎる
415 Unsupported Media Type 送られてきたデータ形式に対応できない
429 Too Many Requests リクエストのレートリミットを超えている
500 Internal Server Error サーバサイドでバグってエラーを吐いている
503 Service Unavailable 意図的にせよ、意図的でないにせよサーバが一時的に利用できない

ステータスコードの大分類

ステータスコードの最初の100の位の桁は大まかな意味を持っています。
200番台
成功
300番台
追加処理の必要性
400番台
クライアントに問題あり
500番台
サーバーサイドに問題あり

まとめに変えて

改めてステータスコードを勉強すると、キャッシュだったりヘッダーだったりETagだったりと勉強することがいっぱいあります。
併せてオライリーのWeb API the good partsなども読んでみましたが、より理解を深めることができます!
私の推しステータスコードは304です。

脚注
  1. 204は削除とかPUTでETAGフィールドとしてレスポンスヘッダに含まれるときに使用される。 ↩︎

  2. 301,302,303,307,308はいずれもリダイレクトに関連するもの。301,302はレスポンスヘッダのLocationを受けてメソッドを変更させることができるが、303,307,308はメソッドの変更を許さない。 ↩︎

  3. 例えば送られてきたパラメータの間違いなどがあった時 ↩︎

ソーシャルデータバンク テックブログ

Discussion