はじめに
REST APIを設計・開発する上で、HTTPステータスコードはクライアントにAPIの処理結果を正確に伝えるために非常に重要な役割を果たします。
今回は、よく利用されるGET、POST、PUT、DELETEメソッドにおけるステータスコードについて、自分用のメモを残します。
ステータスコードとは?
HTTPステータスコードは、クライアントのリクエストに対して、サーバーがどのような処理を行ったかを示す3桁の数字です。100番台、200番台、300番台、400番台、500番台に分類され、それぞれが異なる意味を持ちます。
HTTPメソッドとステータスコード
GET
データ取得
| ステータスコード | 説明 |
|---|---|
| 200 OK | 正常 |
| 304 Not Modified | キャッシュ利用して返却する場合 |
| ステータスコード | 説明 |
|---|---|
| 400 Bad Request | クライアント側のリクエスト不備 |
| 401 Unauthorized | 認証エラー |
| 403 Forbidden | 認可エラー ※404 Not Foundで隠蔽したほうがよい |
| 404 Not Found | 該当するデータがない |
| 429 Too Many Requests | レートリミット制限 |
| 500 Internal Server Error | サーバー側のエラー |
| 503 Service Unavailable | サーバーが高負荷状態で応答不可 |
POST
データ登録
| ステータスコード | 説明 |
|---|---|
| 200 OK | 正常 データ登録した結果をレスポンスに含む場合 |
| 201 Created | 正常 レスポンスが空 Locationヘッダーに新しいリソースへのURL |
| 202 Accepted | 正常 非同期処理の受付が完了 |
| ステータスコード | 説明 |
|---|---|
| 400 Bad Request | クライアント側のリクエスト不備 |
| 401 Unauthorized | 認証エラー |
| 403 Forbidden | 認可エラー ※404 Not Foundで隠蔽したほうがよい |
| 409 Conflict | データが衝突 |
| 429 Too Many Requests | レートリミット制限 |
| 500 Internal Server Error | サーバー側のエラー |
| 503 Service Unavailable | サーバーが高負荷状態で応答不可 |
PUT
データ更新・データ登録
| ステータスコード | 説明 |
|---|---|
| 200 OK | 正常 レスポンスに登録したデータを含む場合 |
| 201 Created | 正常 レスポンスが空 Locationヘッダーに新しいリソースへのURL |
| 204 No Content | 正常 データ更新でレスポンスが空 |
| ステータスコード | 説明 |
|---|---|
| 400 Bad Request | クライアント側のリクエスト不備 |
| 401 Unauthorized | 認証エラー |
| 403 Forbidden | 認可エラー ※404 Not Foundで隠蔽したほうがよい |
| 404 Not Found | 該当するデータがない |
| 409 Conflict | データが衝突 |
| 429 Too Many Requests | レートリミット制限 |
| 500 Internal Server Error | サーバー側のエラー |
| 503 Service Unavailable | サーバーが高負荷状態で応答不可 |
DELETE
データ削除
| ステータスコード | 説明 |
|---|---|
| 200 OK | 正常 レスポンスにデータを含める場合 |
| 202 Accepted | 非同期処理の受付 |
| 204 No Content | 正常 レスポンスが空 |
| ステータスコード | 説明 |
|---|---|
| 400 Bad Request | クライアント側のリクエスト不備 |
| 401 Unauthorized | 認証エラー |
| 403 Forbidden | 認可エラー ※404 Not Foundで隠蔽したほうがよい |
| 404 Not Found | 該当するデータがない |
| 429 Too Many Requests | レートリミット制限 |
| 500 Internal Server Error | サーバー側のエラー |
| 503 Service Unavailable | サーバーが高負荷状態で応答不可 |
参考

HTTP レスポンスステータスコード - HTTP | MDN
HTTP のレスポンスステータスコードは、特定の HTTP リクエストが正常に完了したどうかを示します。レスポンスは 5 つのクラスに分類されています。


コメント