はじめに
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 つのクラスに分類されています。
コメント