HTTPステータスコード
提供:あわ自由帳
HTTPステータスコードは、HTTPにおいてWebサーバからのレスポンスの意味を表現する3桁の数字からなるコードで、RFC 2616等によって定められている。以下に一覧を示す。
1xx Informational 情報
リクエストは受け取られた。処理は継続される。
- 100 Continue
- 継続。クライアントはリクエストを継続できる。サーバがリクエストの最初の部分を受け取り、まだ拒否していないことを示す。
- 例として、クライアントがExpect: 100-continueヘッダをつけたリクエストを行い、それをサーバが受理した場合に返される。
- 101 Switching Protocols
- プロトコル切替え。サーバはリクエストを理解し、遂行のためにプロトコルの切替えを要求している。
- 102 Processing
- 処理中。WebDAVの拡張ステータスコード。処理が継続されて行われていることを示す。
2xx Success 成功
リクエストは受け取られ、理解され、受理された。
- 200 OK
- OK。リクエストは成功し、レスポンスとともに要求に応じた情報が返される。
- ブラウザでページが正しく表示された場合は、ほとんどがこのステータスコードを返している。
- 201 Created
- 作成。リクエストは完了し、新たに作成されたリソースのURIが返される。
- 例: PUTメソッドでリソースを作成するリクエストを行ったとき、そのリクエストが完了した場合に返される。
- 202 Accepted
- 受理。リクエストは受理されたが、処理は完了していない。
- 例: PUTメソッドでリソースを作成するリクエストを行ったとき、サーバがリクエストを受理したものの、リソースの作成が完了していない場合に返される。バッチ処理向け。
- 203 Non-Authoritative Information
- 信頼できない情報。オリジナルのデータではなく、ローカルやプロキシ等からの情報であることを示す。
- 204 No Content
- 内容なし。リクエストを受理したが、返すべきレスポンスエンティティが存在しない場合に返される。
- 例: POSTメソッドでフォームの内容を送信したが、ブラウザの画面を更新しない場合に返される。
- 205 Reset Content
- 内容のリセット。リクエストを受理し、ユーザエージェントの画面をリセットする場合に返される。
- 例: POSTメソッドでフォームの内容を送信した後、ブラウザの画面を初期状態に戻す場合に返される。
- 206 Partial Content
- 部分的内容。部分的GETリクエストを受理したときに、返される。
- 例: ダウンロードツール等で分割ダウンロードを行った場合や、レジュームを行った場合に返される。
- 207 Multi-Status
- 複数のステータス。WebDAVの拡張ステータスコード。
- 226 IM Used
- IM使用。Delta encoding in HTTPの拡張ステータスコード。
3xx Redirection リダイレクション
リクエストを完了させるために、追加的な処理が必要。
- 300 Multiple Choices
- 複数の選択。リクエストしたリソースが複数存在し、ユーザやユーザーエージェントに選択肢を提示するときに返される。
- 具体例として、W3Cのhttp://www.w3.org/TR/xhtml11/DTD/xhtml11.html
- 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:ヘッダを使用したリクエストを行い、そのヘッダに示された時間以降に更新がなかった場合に返される。
- 305 Use Proxy
- プロキシを使用せよ。レスポンスのLocation:ヘッダに示されるプロキシを使用してリクエストを行わなければならないことを示す。
- 306 (Unused)
- 将来のために予約されている。ステータスコードは前のバージョンの仕様書では使われていたが、もはや使われておらず、将来のために予約されているとされる。
- 307 Temporary Redirect
- 一時的リダイレクト。リクエストしたリソースは一時的に移動されているときに返される。Location:ヘッダに移動先のURLが示されている。
- 302の規格外な使用法が横行したため、302の本来の使用法を改めて定義したもの。
- 308 Permanent Redirect
- 恒久的リダイレクト。
4xx Client Error クライアントエラー
クライアントからのリクエストに誤りがあった。
- 400 Bad Request
- リクエストが不正である。定義されていないメソッドを使うなど、クライアントのリクエストがおかしい場合に返される。
- 401 Unauthorized
- 認証が必要である。Basic認証やDigest認証などを行うときに使用される。
- たいていのブラウザはこのステータスを受け取ると、認証ダイアログを表示する。
- 403 Forbidden
- 禁止されている。リソースにアクセスすることを拒否された。リクエストはしたが処理できないという意味。
- アクセス権がない場合や、ホストがアクセス禁止処分を受けた場合などに返される。
- 例: 社内(イントラネット)からのみアクセスできるページに社外からアクセスしようとした。
- 404 Not Found
- 未検出。リソースが見つからなかった。
- 単に、アクセス権がない場合などにも使用される。
- 405 Method Not Allowed
- 許可されていないメソッド。許可されていないメソッドを使用しようとした。
- 例: POSTメソッドの使用が許されていない場所で、POSTメソッドを使用した場合に返される。
- 406 Not Acceptable
- 受理できない。Accept関連のヘッダに受理できない内容が含まれている場合に返される。
- 例: サーバは英語か日本語しか受け付けられないが、リクエストのAccept-Language:ヘッダにzh(中国語)しか含まれていなかった。
- 例: サーバはapplication/pdfを送信したかったが、リクエストのAccept:ヘッダにapplication/pdfが含まれていなかった。
- 例: サーバはUTF-8の文章を送信したかったが、リクエストのAccept-Charset:ヘッダには、UTF-8が含まれていなかった。
- 407 Proxy Authentication Required
- プロキシ認証が必要である。プロキシの認証が必要な場合に返される。
- 408 Request Timeout
- リクエストタイムアウト。リクエストが時間以内に完了していない場合に返される。
- 409 Conflict
- 矛盾。要求は現在のリソースと矛盾するので完了出来ない。
- 410 Gone
- 消滅した。リソースは恒久的に移動・消滅した。どこに行ったかもわからない。
- 404 Not Foundと似ているが、こちらは二度と復活しない場合に使われる。ただし、このコードは特別に設定しないと提示できないため、リソースが消滅しても404コードを出すサイトが多い。
- 411 Length Required
- 長さが必要。Content-Length ヘッダがないのでサーバがアクセスを拒否した場合に返される。
- 412 Precondition Failed
- 前提条件で失敗した。前提条件が偽だった場合に返される。
- 例: リクエストのIf-Unmodified-Since:ヘッダに書いた時刻より後に更新があった場合に返される。
- 413 Request Entity Too Large
- リクエストエンティティが大きすぎる。リクエストエンティティがサーバの許容範囲を超えている場合に返す。
- 例: アップローダの上限を超えたデータを送信しようとした。
- 414 Request-URI Too Long
- リクエストURIが大きすぎる。URIが長過ぎるのでサーバが処理を拒否した場合に返す。
- 例: 画像データのような大きなデータをGETメソッドで送ろうとし、URIが何10kBにもなった場合に返す(上限はサーバに依存する)。
- 415 Unsupported Media Type
- サポートしていないメディアタイプ。指定されたメディアタイプがサーバでサポートされていない場合に返す。
- 416 Requested Range Not Satisfiable
- リクエストしたレンジは範囲外にある。実リソースのサイズを超えるデータを要求した。
- たとえば、リソースのサイズが1024Byteしかないのに、1025Byteを取得しようとした場合などに返す。
- 417 Expectation Failed
- Expectヘッダによる拡張が失敗。その拡張はレスポンスできない。またはプロキシサーバは、次に到達するサーバがレスポンスできないと判断している。
- 具体例として、Expect:ヘッダに100-continue以外の変なものを入れた場合や、そもそもサーバが100 Continueを扱えない場合に返す。
- 422 Unprocessable Entity
- 処理できないエンティティ。WebDAVの拡張ステータスコード。
- 423 Locked
- ロックされている。WebDAVの拡張ステータスコード。リクエストしたリソースがロックされている場合に返す。
- 424 Failed Dependency
- 依存関係で失敗。WebDAVの拡張ステータスコード。
- 426 Upgrade Required
- アップグレード要求。Upgrading to TLS Within HTTP/1.1の拡張ステータスコード。
5xx Server Error サーバエラー
サーバがリクエストの処理に失敗した。
- 500 Internal Server Error
- サーバ内部エラー。サーバ内部にエラーが発生した場合に返される。
- 例として、CGIとして動作させているプログラムに文法エラーがあったり、設定に誤りがあった場合などに返される。
- 501 Not Implemented
- 実装されていない。実装されていないメソッドを使用した。
- 例として、WebDAVが実装されていないサーバに対してWebDAVで使用するメソッド(MOVEやCOPY)を使用した場合に返される。
- 502 Bad Gateway
- 不正なゲートウェイ。ゲートウェイ・プロキシサーバは不正な要求を受け取り、これを拒否した。
- 503 Service Unavailable
- サービス利用不可。サービスが一時的に過負荷やメンテナンスで使用不可能である。
- 例として、アクセスが殺到して処理不能に陥った場合に返される。
- 504 Gateway Timeout
- ゲートウェイタイムアウト。ゲートウェイ・プロキシサーバはURIから推測されるサーバからの適切なレスポンスがなくタイムアウトした。
- 505 HTTP Version Not Supported
- サポートしていないHTTPバージョン。リクエストがサポートされていないHTTPバージョンである場合に返される。
- 506 Variant Also Negotiates
- Transparent Content Negotiation in HTTPで定義されている拡張ステータスコード。
- 507 Insufficient Storage
- 容量不足。WebDAVの拡張ステータスコード。リクエストを処理するために必要なストレージの容量が足りない場合に返される。
- 509 Bandwidth Limit Exceeded
- 帯域幅制限超過。そのサーバに設定されている帯域幅(転送量)を使い切った場合に返される。
- 510 Not Extended
- 拡張できない。An HTTP Extension Frameworkで定義されている拡張ステータスコード。