ブログ移転しました!

https://lighthouse-dev.github.io/

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バージョンである場合に返される。

参考リンク

wikipedia HTTPステータスコード