HTTPサーバー Response Codeのまとめ
HTTPステータスコードについてのまとめです!
各コードは100単位で分かれています。 例えば、300番台同士、400番台同士が似ているタイプのレスポンスコードになります。
このように3桁コードの一番目数字でどんなタイプのレスポンスか分かります! この一番目の数字(コード)を「Response Class」と言います。 それでは、各レスポンスコードについて説明します!
Response Class Code
Response Class | Response Class意味 | 説明 |
---|---|---|
1 | Informational (情報) |
リクエストは受け取られた。処理は継続される。 |
2 | Success (成功) |
リクエストは受け取られ、理解され、受理された。 |
3 | Redirection (リダイレクション) |
リクエストを完了させるために、追加的な処理が必要。 |
4 | Client Error (クライアントエラー) |
クライアントからのリクエストに誤りがあった。 |
5 | Server Error (サーバーエラー) |
サーバがリクエストの処理に失敗した。 |
4番と、5番はエラーではありますが、違いは「4番台」はクライアントの間違ったリクエストでサーバーで処理ができない状態。 「5番台」のエラーはクライアントからのリクエストには問題ないが、サーバーで処理中にサーバーの問題によってエラーが発生したという点です。
2xx Success 成功
Response Class | Response Class意味 | 説明 |
---|---|---|
200 | OK | リクエストは成功し、レスポンスとともに要求に応じた情報が返される。 ブラウザでページが正しく表示された場合は、ほとんどがこのステータスコードを返している。 |
204 | No Content | 内容なし。リクエストを受理したが、返すべきレスポンスエンティティが存在しない場合に返される。 例: POSTメソッドでフォームの内容を送信したが、ブラウザの画面を更新しない場合に返される。 |
206 | Partial Content | 部分的内容。部分的GETリクエストを受理したときに、返される。 例: ダウンロードツール等で分割ダウンロードを行った場合や、レジュームを行った場合に返される。 |
3xx Redirection リダイレクション
Response Class | Response Class意味 | 説明 |
---|---|---|
300 | Multiple Choices | 複数の選択。リクエストしたリソースが複数存在し、ユーザやユーザーエージェントに選択肢を提示するときに返される。 |
301 | Moved Permanently | 恒久的に移動した。リクエストしたリソースが恒久的に移動されているときに返される。Location:ヘッダに移動先のURLが示されている。 例としては、ファイルではなくディレクトリに対応するURLの末尾に/を書かずにアクセスした場合に返される。 具体例として、http://www.w3.org/TR |
302 | Found | 発見した。リクエストしたリソースが一時的に移動されているときに返される。Location:ヘッダに移動先のURLが示されている。 元々はMoved Temporarily(一時的に移動した)で、本来はリクエストしたリソースが一時的にそのURLに存在せず、別のURLにある場合に使用するステータスコードであった。 しかし、例えば掲示板やWikiなどで投稿後にブラウザを他のURLに転送したいときにもこのコードが使用されるようになったため、302はFoundになり、新たに303・307が作成された。 |
303 | See Other | 他を参照せよ。リクエストに対するレスポンスが他のURLに存在するときに返される。 Location:ヘッダに移動先のURLが示されている。 リクエストしたリソースは確かにそのURLにあるが、他のリソースをもってレスポンスとするような場合に使用する。 302の説明で挙げたような、掲示板やWikiなどで投稿後にブラウザを他のURLに転送したいときに使われるべきコードとして導入された。 |
304 | Not Modified | 未更新。リクエストしたリソースは更新されていないことを示す。 例として、 If-Modified-Since:ヘッダを使用したリクエストを行い、そのヘッダに示された時間以降に更新がなかった場合に返される。 |
307 | Temporary Redirect | 一時的リダイレクト。リクエストしたリソースは一時的に移動されているときに返される。 Location:ヘッダに移動先のURLが示されている。 302の規格外な使用法が横行したため、302の本来の使用法を改めて定義したもの。 |
4xx Client Error クライアントエラー
Response Class | Response Class意味 | 説明 |
---|---|---|
400 | Bad Request | リクエストが不正である。定義されていないメソッドを使うなど、クライアントのリクエストがおかしい場合に返される。 |
401 | Unauthorized | 認証が必要である。Basic認証やDigest認証などを行うときに使用される。 たいていのブラウザはこのステータスを受け取ると、認証ダイアログを表示する。 |
403 | Forbidden | 禁止されている。リソースにアクセスすることを拒否された。リクエストはしたが処理できないという意味。 アクセス権がない場合や、ホストがアクセス禁止処分を受けた場合などに返される。 例: 社内(イントラネット)からのみアクセスできるページに社外からアクセスしようとした。 |
404 | Not Found | 未検出。リソースが見つからなかった。 単に、アクセス権がない場合などにも使用される。 |
405 | Method Not Allowed | 許可されていないメソッド。許可されていないメソッドを使用しようとした。 例: POSTメソッドの使用が許されていない場所で、POSTメソッドを使用した場合に返される。 |
5xx Server Error サーバエラー
Response Class | Response Class意味 | 説明 |
---|---|---|
500 | Internal Server Error | サーバ内部エラー。サーバ内部にエラーが発生した場合に返される。 例として、CGIとして動作させているプログラムに文法エラーがあったり、設定に誤りがあった場合などに返される。 |
503 | Service Unavailable | サービス利用不可。サービスが一時的に過負荷やメンテナンスで使用不可能である。 例として、アクセスが殺到して処理不能に陥った場合に返される。 |
504 | Gateway Timeout | ゲートウェイタイムアウト。ゲートウェイ・プロキシサーバはURIから推測されるサーバからの適切なレスポンスがなくタイムアウトした。 |
505 | HTTP Version Not Supported | サポートしていないHTTPバージョン。リクエストがサポートされていないHTTPバージョンである場合に返される。 |