HTTPレスポンスのステータスコードについて、まとめます。
HTMLの参考書だったり、過去に遭遇したことがあるコードを記載しているので、比較的遭遇確率が高いコード達かと。
*HTMLの資格を取る前に、まとめておくべきだった・・・
目次
1. ステータスコード一覧
ステータスコード | 内容 |
---|---|
1xx | Information(情報提供) |
2xx | Success(成功) |
3xx | Redirection(転送) |
4xx | Client Error(クライアントエラー) |
5xx | Server Error(サーバーエラー) |
2. 各コードの詳細
1xx(情報提供)
1xx(情報提供)は、サーバがクライアント側へどのような対応をしているかを伝えるコード。
ステータスコード | 説明 |
---|---|
100(Continue) | クライアントはリクエストを継続して良い状態を表す |
101(Switching Protocol) | サーバがプロトコルを切り替えている状態を表す |
102(Processing) | サーバがリクエストを受け取り、処理中の状態を表す |
103(Early Hints) | サーバがレスポンスを準備している間に、必要なリソース(画像など)を 事前に読み込ませる為のヒントを提供する |
2xx(成功)
2xx(成功)は、リクエストが正常に処理され成功したことを伝えるコード。
ステータスコード | 説明 |
---|---|
200(OK) | リクエストが正常に処理され、成功したことを表す |
201(Created) | リクエストが正常に処理され、新たなリソースがcreate(作成)されたことを表す *リソースは例えば、ユーザ登録やファイルアップロードとか |
202(Accept) | リクエストは問題なく受け取ったが、処理自体は完了していないことを表す *バッチ処理や別プロセスでの処理など、非同期で処理が実行されるときに使う |
204(NoContent) | リクエストは正常に処理されたが、返却するコンテンツがないことを表す *レスポンスボディがない時に使う |
3xx(転送)
3xx(転送)は、リクエスト完了にあたり追加処理が必要であることを伝えるコード。
リダイレクト処理などが該当する。
ステータスコード | 説明 |
---|---|
301(Moved Permanently) | リクエストされたリソースが別のURLへ移動したことを表す *別ページへのリダイレクト処理が発生した時に使用する |
307(Temporary Redirect) | リクエストされたリソースが別のURLへ一時的に移動したことを表す *302との違いとして、使用するHTTPメソッド(GETなど)やリクエストボディは変更不可 |
308(Permanent Redirect) | リクエストされたリソースが別のURLへ移動したことを表す *301との違いとして、使用するHTTPメソッド(GETなど)やリクエストボディは変更不可 |
4xx(クライアントエラー)
4xx(クライアントエラー)は、クライアント側からのリクエストに問題があることを表すコード。
クライアントからのリクエストに問題があり、サーバが拒否している状態。
ステータスコード | 説明 |
---|---|
400(Bad Request) | リクエスト内容に問題があり、サーバーが処理できない状態を表す *リクエストが正しくない、パラメータが正しくない など |
403(Forbidden) | リソースへのアクセス権がない状態や、認証に失敗した状態を表す *IPアクセス制限などでアクセス拒否された時などに使用する |
404(Not Found) | サーバーがリクエストされたリソースを確認できない状態を表す *リクエスト先(URI)が見つからないケースが多い *403の代わりに返すこともある(許可されていないリソースを隠すため) |
408(Request Timeout) | 指定時間内にリクエストの処理が完了しなかった状態を表す |
5xx(サーバーエラー)
サーバー側に問題が発生していることを表すコード。
ステータスコード | 説明 |
---|---|
500(Internal Server Error) | サーバー側で何らかのエラーが発生している状態を表す *クライアント側での解決は不可 |
503(Service Unavailable) | サーバー側でリクエストの処理が実行できない状態を表す *メンテナンス中や、過負荷状態のケースが該当する |
3. 終わりに
HTMLの試験を受けた後にこの記事の内容を書いていますが、試験前にまとめておくべきだった・・・
試験でもメジャーなステータスコードの内容を問う問題は出てくるし、APIを設計した時には頭に入れておくべき内容なので、基礎として知っておくのが良さそう。
*HTMLの試験については下記にまとめました。
参考書に苦しみながらHTML5認定試験レベル1に合格した話