図書館員のコンピュータ基礎講座

HTTPステータス・コードとメソッド

HTTPプロトコルでは、コンピュータ同士が通信している間に、コードを用いてお互いの状態(ステータス)をやり取りしています。このコードのことをHTTPステータス・コード(HTTP Status Code)と呼び、エラーが発生した場合に「404 Not Found」のようにブラウザ上に表示されたり、エラーが発生しなかった場合にも見えないところでやり取りされています。
また、通信を行うためにクライアントがサーバーに様々なリクエストを行いますが、このリクエストの方法をメソッドと呼びます。

規格

【2016-03-03更新】

ステータス・コードおよびメソッドの仕様は、HTTPの規格で規定されており、この仕様は次のように改訂されています。

規格番号 名称 制定年
RFC 1945外部へのリンク HTTP/1.0 1996年
RFC 2068外部へのリンク HTTP/1.1 1997年
RFC 2616外部へのリンク HTTP/1.1 1999年
規格番号 名称 制定年
RFC 7230外部へのリンク HTTP/1.1 : Message Syntax and Routing 2014年
RFC 7231外部へのリンク HTTP/1.1 : Semantics and Content
RFC 7232外部へのリンク HTTP/1.1 : Conditional Requests
RFC 7233外部へのリンク HTTP/1.1 : Range Requests
RFC 7234外部へのリンク HTTP/1.1 : Caching
RFC 7235外部へのリンク HTTP/1.1 : Authentication
RFC 7236外部へのリンク HTTP Authentication Scheme Registrations
RFC 7237外部へのリンク HTTP Method Registrations
RFC 7238外部へのリンク HTTP Status Code 308 (Permanent Redirect)
RFC 7239外部へのリンク Forwarded HTTP Extension
RFC 7538外部へのリンク HTTP Status Code 308 (Permanent Redirect) 2015年
RFC 7540外部へのリンク HTTP/2
RFC 7725外部へのリンク An HTTP Status Code to Report Legal Obstacles 2016年
  • RFC 2616はRFC 7230~7235に分割改訂され、関連する新たな仕様RFC 7236~7239が追加された。
  • RFC 7230~7235のうち、HTTPステータス・コードの仕様の大部分はRFC 7231に含まれており、残りの一部がRFC 7232、7233、7235に含まれている。

分類

ステータス・コードには3桁の数字が割り当てられており、1桁目の数字は分類を表します。

コード表

【2016-03-03更新】

HTTPステータス・コードです。

コード ステータス HTTPバージョン等
説明
1xx Informational 情報 -
100 Continue 継続 1.1
クライアントは、そのリクエストを継続してもよい。
101 Switching Protocols プロトコル切替え 1.1
サーバーは、この接続で使用されているアプリケーション・プロトコルの変更に対するクライアントのリクエストに応じようとしている。
2xx Successful 成功 -
200 OK OK 1.0
リクエストは成功した。レスポンスと共に返される情報は、リクエストで使用されたメソッドに依存し、例えば、GET、HEAD、POST、TRACEのようになる。
201 Created 生成 1.0
リクエストは果たされ、結果として新しい資源が生成された。
202 Accepted 受理 1.0
リクエストは処理用に受け入れられたが、処理は完了していない。CGIのように別の場所でデータを生成する時など。
203 Non-Authoritative Information 非認定情報 1.1
エンティティ・ヘッダーで返されたメタ情報は、オリジナル・サーバーから入手できる確定的な集合ではなく、ローカルあるいはサード・パーティーのコピーから集められたものである。
204 No Content コンテンツなし 1.0
サーバーはリクエストを果たしたが、送り返すべき情報が存在しない。空のページにアクセスしようとした時など。
205 Reset Content コンテンツリセット 1.1
サーバーはリクエストを果たしたが、ユーザ・エージェントは、リクエストを送信させたドキュメント・ビューをリセットするべきである。
206 Partial Content 部分的コンテンツ 1.1
サーバーは、資源に対する部分的なGETリクエストを果たした。
3xx Redirection リダイレクション -
300 Multiple Choices 多重選択 1.1
リクエストされた資源は、それぞれが固有のロケーションをもつ表現セットの一つに対応し、ユーザ(あるいはユーザ・エージェント)が、より望ましい表現を選別してそのリクエストをそのロケーションにリダイレクトできるように、エージェント駆動型ネゴシエーション情報が提供されている。
301 Moved Permanently 恒久的移動 1.0
リクエストされた資源は新しい恒久的なURIを割り当てられたので、この資源への今後の参照は、返されたURIの一つを使用するべきである。
302 Found 発見した 1.0(RFC 2616変更)
リクエストされた資源は、一時的に異なるURIに属する。RFC 2068までは「Moved Temporarily」(一次的移動)だったが、他のURLにリダイレクトさせる目的などに使用されるようになったため修正され、303と307が追加された。
303 See Other 他を参照 1.1
リクエストに対するレスポンスは異なるURIの下で発見でき、その資源をGETメソッドを使って検索する必要がある。
304 Not Modified 変更なし 1.0
リクエストされた資源が指定された日付以降に更新されていない。クライアントが条件付きGETリクエストを実行し、アクセスは許可されたが、ドキュメントが更新されていない場合には、サーバーはこのステータス・コードでレスポンスを行なうべきである。
305 Use Proxy プロキシーを使用 1.1
リクエストされた資源には、プロキシを通じてアクセスしなければならない。
307 Temporary Redirect 一時的リダイレクト 1.1(RFC 2616追加)
リクエストされた資源は、一時的に異なるURIに属する。リクエストと同じ動詞を使用して(POSTでリクエストした場合にはPOSTで)そのURIにアクセスすべきである。
308 Permanent Redirect 恒久的リダイレクト 1.1(RFC 7238追加、RFC 7538改訂)
リクエストされた資源は新しい恒久的なURIを割り当てられたので、この資源への今後の参照は、返されたURIの一つを使用するべきである。ただし、301とは異なり、リクエストのメソッドはリダイレクト前後で同じでなければならない。
4xx Client Error クライアント・エラー -
400 Bad Request 不正リクエスト 1.0
リクエストは不正な構文であるために、サーバーに理解されなかった。打ち込んだURLに変な間違いがあった時など。
401 Unauthorized 許可なし 1.0
リクエストは、ユーザ認証を必要とする。認証に失敗した時など。
402 Payment Required 支払い要求 1.1
(このコードは,将来の使用のために予約されている。)
403 Forbidden アクセス拒否 1.0
サーバーはリクエストを理解したが、そのリクエストの実行を拒否した。アクセス権限がない時など。
404 Not Found 存在不明 1.0
サーバーは、リクエストURIと一致するものを見つけられなかった。アドレスが無くなった時など。
405 Method Not Allowed 禁止メソッド 1.1
リクエスト・ラインで指定されたメソッドは許されていない。
406 Not Acceptable 受理不可 1.1
リクエストによって識別される資源は、リクエスト中に送信された受理ヘッダに従って、受理できない内容特性をもつレスポンス実体を生成することができるのみである。 受信の条件が適合していないため、リクエストされる資源は受理できない。
407 Proxy Authentication Required プロクシー認証要求 1.1
このコードは401(Unauthorized)と似ているが、クライアントは最初にプロキシに対する認証を行なわなければならないことを示している。
408 Request Timeout タイムアウト 1.1
クライアントは、サーバーの待機時間内にリクエストを発行しなかった。
409 Conflict 衝突 1.1
リクエストは、資源の現在の状態と衝突するために完了できなかった。
410 Gone 消滅 1.1
リクエストされた資源は、もはやそのサーバーでは入手できなくなっており、転送先のアドレスも不明である。
411 Length Required 長さ要求 1.1
サーバーは、定義された Content-Lengthのないリクエストの受理を拒否した。
412 Precondition Failed 前提条件失敗 1.1
一つ以上のリクエスト・ヘッダ・フィールドで与えられた前提条件が、サーバーでテストされたときに偽(不正)であると評価された。
413 Payload Too Large ペイロードが大きすぎ 1.1(RFC 7231変更)
リクエスト実体がサーバーの想定よりも、あるいは処理可能なものよりも大きいため、想定処理を拒否している。RFC 2616以前は「Request Entity Too Large」(リクエスト実体が大きすぎ)だった。
414 URI Too Long URIが大きすぎ 1.1(RFC 7231変更)
リクエストURIがサーバーの想定よりも、あるいは処理可能なものよりも大きいため、サーバーはサービスを拒否している。RFC 2616以前は「Request-URI Too Long」(リクエストURIが大きすぎ)だった。
415 Unsupported Media Type 非サポート・メディア・タイプ 1.1
リクエスト実体は、リクエストされたメソッドに対してリクエストされた資源がサポートしていないフォーマットであるため、サーバーがリクエストのサービスを拒否している。
416 Range Not Satisfiable 範囲外 1.1(RFC 2616追加、RFC 7233変更)
リクエストされたデータの範囲を返すことができない。RFC 2616では「Requested Range Not Satisfiable」(リクエスト範囲外)だった。
417 Expectation Failed 予測失敗 1.1(RFC 2616追加)
Expectヘッダによる拡張が失敗した。
421 Misdirected Request 誤ったリクエスト 2
レスポンスを生成できないサーバーにリクエストを送信した。
426 Upgrade Required アップグレード要求 1.1(RFC 7231追加)
通信プロトコルを、他のものへアップグレードする必要がある。
451 Unavailable For Legal Reasons 法的理由による利用不可 1.1(RFC 7725追加)
著作権、プライバシー等に関わる違法な資源が要求されたため、アクセスが拒否された。「403 Forbidden」から派生した。
5xx Server Error サーバー・エラー -
500 Internal Server Error サーバー内部エラー 1.0
サーバーは、リクエストの実行を妨げる予期しない状況に遭遇した。 CGIスクリプト・エラーなど。
501 Not Implemented 未実装 1.0
サーバーは、リクエストを実行するために必要な機能をサポートしていない。
502 Bad Gateway 不正ゲートウェイ 1.0
ゲートウェイあるいはプロキシとして動作しているサーバーが、リクエストを実行しようとしてアクセスした上位サーバーから不正なレスポンスを受信した。 不正なゲートウェイ経由のアクセスなど。
503 Service Unavailable サービス利用不可 1.0
サーバーはサーバーの一時的な過負荷あるいはメインテナンスのために、現在、リクエストを扱うことができない。
504 Gateway Timeout ゲートウェイ・タイムアウト 1.1
ゲートウェイあるいはプロキシとして動作しているサーバーが、リクエストを完了しようとしてアクセスした上位サーバーからタイムリーなレスポンスを受信できなかった。
505 HTTP Version Not Supported 非サポートHTTPバージョン 1.1
サーバーは、リクエスト・メッセージで使用されたHTTPプロトコル・バージョンをサポートしていない、あるいはサポートを拒否している。
  • 「HTTPバージョン」が「1.1」のもののうちRFC 2616以降に追加、変更等が行われたものは規格番号と状況を付記した。

メソッド

【2015-08-28更新】

HTTPでクライアントからサーバーにリクエストを行う方法(メソッド)です。

メソッド 説明 HTTPバージョン
GET サーバー上の指定したURIの資源を取得する。最も一般的に用いられるメソッド。 1.0
HEAD GETと似ているが、サーバーはヘッダーのみを返す。 1.0
POST ローカル上の資源をサーバー上の指定したURIに転送する。フォームに入力した資源をサーバーに転送する場合などに用いられる。 1.0
PUT ローカル上の資源をサーバーに転送する。画像のアップロードなどに用いられる。 1.0
DELETE サーバー上の指定したURIの資源を削除する。 1.0
CONNECT サーバーへのトンネル接続(トンネリング)を確立する。暗号化された資源をプロキシ・サーバーを経由して転送する場合に用いられる。 1.1
OPTIONS サーバーがサポートしているメソッドやオプションを調査する。 1.1
TRACE 資源がどのような経路を辿ってサーバーに送信されるかをチェックする。サーバーは、受け取ったメッセージに含まれるエンティティーをそのまま返す。 1.1
  • GETとHEADは必ずサポートしなければならない必須メソッド。
  • GETは、HTTPがRFCになる前に作成されたHTTP/0.9というバージョンで定義されていた。
  • HTTP/1.0ではLINKとUNLINKが定義されていたが、HTTP/1.1で廃止された。
参照・参考文献
ページのトップへ
CyberLibrarian : tips on computer for librarians, 1998-