はじめに
12月17日に行われた小テストの結果があまり良くなかったので復習も兼ねて理解が不足していた部分をまとめて残そうと思います。(特にステータスコードがボロボロだった…)
ステータスコードとは
正式にはHTTPステータスコードと言うらしい。
「HTTPにおいてWebサーバーからのレスポンスの意味を表現する3桁の数字からなるコード」のこと。(Wikipediaより)
HTTPのレスポンスの先頭行につけられている。
ステータスコードの分類
ステータスコードの分類は以下の通り
- 100番台 情報レスポンス
- 一般的にはほとんど見かけない。
- 200番台 成功
- クライアントからリクエストした処理が成功したことを表している。
- 300番台 リダイレクト
- リダイレクトが発生した時に表示される。
- リダイレクト…Webサイトやホームページに訪れたユーザーを別のURLに自動で転送する設定のこと。例えば、Webサイトを新しくして新しいURLになった時、リダイレクトをしないと古いURLに飛ばされてしまう。
- 400番台 クライアント側のエラー
- クライアント側から送られてきたリクエストが理解できなかったり、理解できたけど実行は許可されていない時に表示される。
- 500番台 サーバー側に問題がある
- サーバー側で何かしらのエラーが発生した時に表示される。
主に見かけるステータスコード
※100番台は上記の通り一般的には見ることが少ないため割愛。
ステータスコード | 名前 | 解説 |
---|---|---|
200番台 | ||
200 | OK | リクエストは成功したという意味。すごくよく見る。 |
201 | Created | リクエストした結果、サーバー側でデータ作成が行われたと言う意味。リクエストメソッドとしてはPOST(データの更新、登録)が使われた。 |
202 | Accepted | リクエストは受け付けたけど、まだ完了していないよという意味。処理は非同期で行われている。 |
204 | No Content | レスポンスが空の時に返す。利用例として、DELETEメソッドを使ってデータを削除した時に返すのがある。また、PATCHやPUTでデータの更新をした時も204を返すのがいいのではないかという意見もある。 |
300番台 | ||
301 | Moved Permanently | リソースは恒久的に移動したことを表す。新しいURLにアクセスし直す必要がある。 |
302 | Found | リソースが一時的に移動していることを表す。 |
303 | See Other | クライアントからのリクエストに対するレスポンスが、別のURLで利用可能であることを表す。POSTリクエストの後にGETリクエストを用いて新しいページを取得させるために使用される。 |
304 | Not Modified | 要求されたコンテンツは前回から更新されていないことを表す。クライアント側がきちんとそれまでのデータのキャッシュを行い、キャッシュの情報を返してくれた時にだけ返ってくる。 |
400番台 | ||
400 | Bad Request | 400番台のエラーでは表すことができないエラーのこと。 |
401 | Authentication | 認証のエラー。「誰だお前…」という感じの意味。 |
403 | Authorization | 認可のエラー。「お前のことはわかったけど、その操作の権限はないわ」と言う感じの意味。 |
404 | Not Found | データは存在していないという意味を表す。存在しないエンドポイントにアクセスしようとしたり、存在しないユーザーの情報を取得しようとしたりすると返ってくる。 |
405 | Method Not Allowed | エンドポイントは存在しているが、メソッドが許可されていないことを表す。GETでしかアクセスできないところにPOSTでアクセスしようとした時に返ってくる。 |
406 | Not Acceptable | クライアントが指定してきたデータ形式にAPIが対応していない場合を表す。 |
408 | Request Timeout | リクエストをクライアントがサーバに送るのに時間がかかり過ぎてサーバ側でタイムアウトを起こしたことを表す。 |
409 | Conflict | リソース競合が起きたことを表す。すでに同じIDが存在した時などに返ってくる。 |
410 | Gone | かつては存在したけれど今は存在していない時に返ってくる。このステータスコードを返すにはデータを削除したという情報を保持する必要がある。 |
413 | Request Entity Too Large | リクエストボディが大きすぎることを表す。 |
414 | Request-URL Too Long | リクエストしたURLが長すぎることを表す。 |
415 | Unsupported Media Type | リクエストボディのデータ形式をサーバが対応していないことを表す。 |
429 | Too Many Requests | アクセス回数が許容範囲の限界を超えたことを表す。アクセス回数の制限のことはレートリミットという。 |
500番台 | ||
500 | Internal Sever Error | サーバ側のコードにバグがあることを表す。 |
503 | Sever Unavailable | サーバが一時的に利用できない状態になっていることを表す。メンテナンスのためにサービスを止めている時に返ってくる。 |
まとめ
主に使用されると言われてもだいぶ量が多い…
404とかはよく見かけますがそれ以外はほぼ初めて見るものばかりでした。完璧に覚える必要はないと思いますが、記憶を探り出すきっかけとして知識をつけておくことは重要だと感じました。