😍

ステータスコード - HTTP1.1(RFC 2616)

4 min read

ステータスコード - 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のプロトコルバージョンが、サーバー側でサポートされていない状態。

reference

GitHubで編集を提案

Discussion

ログインするとコメントできます