ステータスコード - HTTP1.1(RFC 2616)
ステータスコード - HTTP1.1(RFC 2616)
ステータスコードとは
ステータスコード(Status-Code element)とは、リクエストに応じた結果を表す、3文字の数字のことである。
ステータスコードの種類
ステータスコードは、最初の数字がレスポンスのタイプとして定義されており、残りの2文字の数字に関しては、カテゴリーとしては定義していない。
状態によって、5つの値がある。
- 1xx: 情報(Informational) - リクエストを受け取って、処理中のことを表す。
- 2xx: 成功(Success) - リクエストの受け取りに成功し、アクションしている状態。
- 3xx: リダイレクト(Redirection) - リクエストを完了するために、より多くのアクションを返している状態。
- 4xx: クライアントエラー(Client Error) - リクエストが不適切な構文であったり、条件を満たしていないなどでエラーが出ている状態。
- 5xx: サーバーエラー(Server Error) - サーバーが有効なリクエストを満たしていない状態。
1xx(Informational)
100: Continue(続行)
サーバーがリクエストを処理できると判断した場合に返すレスポンス。
101: Switching Protocols(プロトコルの切り替え)
利用するプロトコルをHTTP1.1からupgradeする時に用いるレスポンス。現時点では利用することはない。
2xx(Success)
200: OK
リクエストが成功。
201: Created
リクエストが成功。新しいリソースを作成。
202: Accepted
リクエストが成功。サーバー処理は未完了。
POST/PUTでリソースを作成・更新した時に、その処理に時間がかかりそうな場合に返す。
203: Non-Authoritative Information
response headerがオリジナルのサーバーから提供されたものではない状態。
204: No Content
リクエストが成功。クライアントに返すコンテンツがない状態。
DELETEへのレスポンスやAjaxでの処理など。
205: Reset Content
リクエストが成功。ブラウザの画面をリセットして次の入力動作に移行できる状態。
206: Partial Content
部分的GET(GETをRangeヘッダで、リソースの範囲をバイトで指定した状態)が成功。
3xx(Redirection)
300: Multiple Choices
サーバー側で指定したURLの候補が絞りきれなかった場合に、クライアント側に複数候補のリンクを返す。
301: Moved Permanently
指定したリソースが新しいURLに移動した状態。
移動先のURLはLocationヘッダで示す。
302: Found
【非推奨】
リクエストURLが存在しないため、クライアントはLocationヘッダが示す別のURLに、メソッドを変えずにリクエストを再送信する必要がある状態。
303: See Other
リクエストに対する処理結果が、Locationヘッダで示されるURLからGETで取得できる状態。
レスポンスが別のURLで見つけることができる状態。
304: Not Modified
条件付GETの際に、リソースが更新されていない状態。
305: Use Proxy
要求されたリソースは、Locationヘッダで指定されたproxyを介してアクセスされなければならない状態。
306: (Unused)
【未使用】
307: Temporary Redirect
リクエストしたURLが存在しないため、クライアントはLocationヘッダが示す別のURLに、メソッドを変えずにリクエストを再送信する必要がある状態。
4xx(Client Error)
400: Bad Request
リクエスト構文が違う状態。
401: Unauthorized
ユーザー認証が必要なリクエスト。レスポンスには、WWW-Authenticateヘッダーフィールドを含む必要がある。
402: Payment Required
【未使用】
料金が必要なリクエスト。
403: Forbidden
特定のIPアドレスのみからアクセスできる場合などに用いる。
このレスポンスは、リソース自体は存在することをクライアントに提示することになる。
リソースの存在自体を隠す場合は404を返す。
404: Not Found
指定したリソースが見つからなかった状態。
405: Method Not Allowed
リクエストしたURLが、指定したメソッドをサポートしていない状態。
406: Not Acceptable
クライアントがAccrptヘッダで指定した表現が返せない状態。
レスポンスボディにサーバが用意できる選択肢の一覧が入る。
407: Proxy Authentication Required
プロキシ認証が必要である状態。
レスポンスのProxy-Authenticateヘッダには認証方式が入ります。
408: Request Timeout
サーバー側でのタイムアウト。
クライアントからのリクエストがサーバーの期待する時間内に終わらない場合に出てくる。
409: Conflict
リソースの現在との状態と競合したため、リクエストを完了できない状態。
空ではないディレクトリを削除しようとしたり、リソースの名前をすでにほかで使われているものに変更しようとしたりする場合など。
410: Gone
リソースが、以前は存在したが、現在は存在しないことを示している状態。
411: Length Required
クライアントが、Content-Lengthヘッダを送信しなければならない状態。
412: Precondition Failed
条件付きリクエストでクライアントが指定した事前条件が、サーバー側で合わない状態。
413: Request Entity Too Large
サーバーが処理可能なリクエスト・メッセージの長さを超えたために、サーバーがリクエストを拒否した状態。
414: Request-URI Too Long
リクエストURLが、サーバー側が解釈できうる長さを超えたために、リクエストが拒否された状態。
415: Unsupported Media Type
クライアントが指定したメディアタイプが、サーバーがサポートしていない状態。
416: Requested Range Not Satisfiable
クライアントがRangeヘッダで指定した範囲が、リソースのサイズと合致していない状態。
417: Expectation Failed
クライアントがExpectヘッダで指定したものが、サーバーが理解できていない状態。
5xx(Server Error)
500: Internal Server Error
サーバー側でエラーが発生した状態。
501: Not Implemented
リクエストされたメソッドが、URI上でサーバーが実装していない状態。
502: Bad Gateway
プロキシが上流サーバーにリクエストを送ったが、処理が正常に終了しなかった状態。
503: Service Unavailable
一時的な過負荷や、サーバー側のメンテナンス等により、リクエストを一時的に扱えない状態。
504: Gateway Timeout
プロ棋士が上流サーバーにリクエストを送ったが、タイムアウトで接続できなかった状態。
505: HTTP Version Not Supported
リクエスト・メッセージで使用されているHTTPのプロトコルバージョンが、サーバー側でサポートされていない状態。
Discussion