HTTPステータスコード

出典: フリー百科事典『ウィキペディア(Wikipedia)』

HTTPステータスコードは、HTTPにおいてWebサーバからのレスポンスの意味を表現する3桁の数字からなるコードで、RFC2616等によって定められている。以下に一覧を示す。

目次

[編集] 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の本来の使用法を改めて定義したもの。

[編集] 4xx Client Error クライアントエラー

クライアントからのリクエストに誤りがあった。

400: Bad Request
リクエストが不正である
クライアントのリクエストがおかしい(定義されていないメソッドを使うなど)場合に返される。
401: Unauthorized
認証が必要である
Basic認証Digest認証などを行うときに使用される。たいていのブラウザはこのステータスを受け取ると、認証ダイアログを表示する。
402: Payment Required
支払いが必要である。未実装。
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と似ているが、こちらは二度と復活しない場合に示される。
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
期待するヘッダに失敗
その拡張はレスポンスできず、またはプロキシサーバが次に到達するサーバがレスポンスできないと判断している。
具体例として、Excpect:ヘッダに100-continue以外の変なものを入れた場合や、そもそもサーバが100 Continueが扱えない場合に返す。
418: I'm a teapot
私はティーポットHTCPCP/1.0の拡張ステータスコード。
ティーポットコーヒーを淹れさせようとして、拒否された場合に返す。
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で定義されている拡張ステータスコード。

[編集] 外部リンク

  • RFC1945 - Hypertext Transfer Protocol -- HTTP/1.0
  • RFC2068 - Hypertext Transfer Protocol -- HTTP/1.1
  • RFC2616 - Hypertext Transfer Protocol -- HTTP/1.1 (RFC2068の改訂版)
  • RFC2518 - HTTP Extensions for Distributed Authoring -- WEBDAV
  • RFC3229 - Delta encoding in HTTP
  • RFC2324 - Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0)
  • RFC2817 - Upgrading to TLS Within HTTP/1.1
  • RFC2295 - Transparent Content Negotiation in HTTP
  • RFC2774 - An HTTP Extension Framework
  • [Studying HTTP] HTTP Status Code - 日本語の解説