🤖

HTTPステータスコード一覧

に公開

状況

  • RSpecテストコードを書いている際、「エラー画面に行かずにページを再読み込みする」ことを検証するにはどうすればいいか悩む場面があった。
  • 調べてみると、「無効なパラメータを送信した際に、ステータスコード200が返されることを確認する」ことで対応できそうだとわかった。
  • 404や500は知っていたが200については知らず、それ以外にもたくさん種類がありそうだったので今回まとめてみることにしました。

HTTPステータスコード一覧

HTTP 100番台 Informational(情報レスポンス)

HTTPステータスコード 説明 推奨状態
100 Continue リクエスト継続可能 推奨
101 Switching Protocol プロトコルの切り替え 推奨
102 Processing 処理中 非推奨
103 Early Hints 早期に予測されるヘッダを伝達 推奨

HTTP 200番台 Success(成功レスポンス)

HTTPステータスコード 説明 推奨状態
200 OK リクエストが正常に処理できた 推奨
201 Created リクエストが成功してリソースの作成が完了 推奨
202 Accepted リクエストを受け取ったが処理はされていない 推奨
203
Non-Authoritative Information
リクエストが成功したものの変換プロキシによって
元のサーバーの200(OK)レスポンスからペイロードが変更された
推奨
204 No Content リクエストは成功したものの、クライアントが現在のページから移動する必要がない 推奨
205 Reset Content クライアントにドキュメントビューをリセットするように指示 推奨
206 Partial Content 要求された範囲のデータやリソースの一部分だけのリクエストが成功 推奨
207 Multi-Status レスポンスが混ざっている可能性がある 非推奨
208 Already Reported バインディングへのレスポンス 非推奨
226 IM Used デルタエンコーディングの文脈において
受信した'GET'リクエストに対する"デルタ"を返していることを示す
非推奨

HTTP 300番台 Redirection(リダイレクション)

HTTPステータスコード 説明 状態
300 Multiple Choice リクエストに対して複数のレスポンスがあることを示す 推奨
301 Moved Permanently URLへ完全に(恒久的に)移動する 推奨
302 Found 一時的に移動する
※ Google検索エンジンの検索リストでは旧URLを示すため将来的に元のURLに戻すなどの時に利用
推奨
303 See Other リダイレクトが新しくアップロードされたリソースではなく
(確認ページやアップロード進捗ページのような)別なページにリンクする
推奨
304 Not Modified 更新されていない
※ 正常に処理されているがブラウザキャッシュの内容を表示している為、サーバからダウンロードをしていない
推奨
307 Temporary Redirect 一時的に'Location'ヘッダーで示されたURLへ移動
※ 302と異なり、リダイレクトされたリクエスト時にメソッドと本文は変更されない
推奨
308 Permanent Redirect 'Location'ヘッダーで示されたURLへ完全に移動
※ 301と異なり、リダイレクトされたリクエスト時にメソッドと本文は変更されない
推奨

HTTP 400番台 Client Error(クライアントエラー)

HTTPステータスコード 説明 推奨状態
400 Bad Request 一般的なクライアントエラー 推奨
401 Unauthorized アクセス権が無い、または認証に失敗 推奨
402 Payment Required 料金の支払いをするまでリクエストを処理できない状態 推奨
403 Forbidden 閲覧権限が無いファイルやフォルダ
※ 再認証不可な状態
推奨
404 Not Found Webページが見つからない
リソースが一時的または永続的に失われているかどうかまでは示していない
推奨
405 Method Not Allowed 送信するクライアント側のメソッドが許可されていない 推奨
406 Not Acceptable サーバー側が受付不可能な値(ファイルの種類など)であり提供できない状態 非推奨
407 Proxy Authentication Required プロキシサーバ経由で通信を行う際にプロキシサーバの認証情報が不足している 推奨
408 Request Timeout リクエスト送信後のやり取りに時間が長すぎるため時間切れ 推奨
409 Conflict サーバーに既に存在しているデータが競合しているためリクエストを完了できない 推奨
410 Gone ファイルが削除されたため、ほぼ永久的にWebページが存在しない 推奨
411 Length Required Content-Length(リクエストヘッダに送るデータ容量が書いてある項目サーバー)の方でContent-Lengthヘッダが無いためアクセスを拒否した 推奨
412 Precondition Failed ヘッダで定義された前提条件が満たされていない場合にアクセス拒否 推奨
413 Payload Too Large ファイルをアップロードする際にサーバーで定めたファイル容量の上限を超えてしまった為アクセス拒否 推奨
414 URI Too Long 指定したURLが長すぎる 推奨
415 Unsupported Media Type サーバーで許可していないリクエストの種類の為アクセス拒否された 推奨
416 Range Not Satisfiable サーバーがリクエストされた範囲(容量)を提供できない 推奨
417 Expectation Failed リクエストの Expect ヘッダーに期待された値が設定されていなかった 推奨
418 I'm a teapot サーバー自身がティーポットであることを理由としてコーヒーを入れることを拒否すること
(=処理したくないリクエストに使われる)
非推奨
421 Misdirected Request リクエストがレスポンスを生成できないサーバーに送られたこと 推奨
422 Unprocessable Entity WebDAVの拡張ステータスコードリクエストは適正だが意味が異なるためサーバーが返すことが出来ない 非推奨
423 Locked WebDAVの拡張ステータスコードリクエスト内容がロックされているためサーバーが返すことが出来ない 非推奨
424 Failed Dependency 要求されたアクションが他のアクションに依存しており、そのアクションが失敗したため、対象のリソースに対してメソッドを実行できなかった 推奨
425 Too Early サーバーが繰り返し処理が発生される可能性のあるリクエストと判断したため処理が出来ないと判断
無限ループでサーバーに高負荷がかかるリスクの可能性がある為
非推奨
426 Upgrade Required 拡張ステータスコードHTTP/1.1にアップグレードが必要な為、サーバーが処理できない 推奨
428 Precondition Required サーバーがリクエストを条件付きにする必要がある 推奨
429 Too Many Requests 一定時間内にリクエスト数が多すぎるためアクセスを拒否した
DDos攻撃によるサーバーダウンのリスクを回避する為
推奨
431 Request Header Fields Too Large リクエストヘッダーが長すぎるためサーバー処理が拒否した 推奨
451 Unavailable For Legal Reasons ユーザーの要求したリソースが法的理由で使用できない 非推奨

HTTP 500番台 Server Error(サーバーエラー)

HTTPステータスコード 説明 状態
500 Internal Server Error 何らかのサーバー内で起きたエラー 推奨
501 Not Implemented サーバーがリクエストに満たすのに必要な機能をサポートしていない 推奨
502 Bad Gateway ゲートウェイ・プロキシサーバが不正なリクエストを受け取り拒否した 推奨
503 Service Unavailable 一時的にサーバーにアクセスが出来ない 推奨
504 Gateway Timeout リクエストを送ったサーバーからの適切なレスポンスがなくタイムアウトした 推奨
505 HTTP Version Not Supported HTTP バージョンがサーバーによってサポートされていない 推奨
506 Variant Also Negotiates Transparent Content Negotiation in HTTPで定義されている拡張ステータスコードURLを返すコンテンツで配置ミスなどによる内部サーバーエラー 推奨
507 Insufficient Storage WebDAV拡張ステータスコードサーバーで処理するためのストレージ容量不足 非推奨
508 Loop Detected 主に開発中のプログラム処理で、無限ループに陥ったためサーバーが操作を終了 推奨
510 Not Extended 主に静的ファイルへのアクセス集中による一時的に表示されるエラー 推奨
511 Network Authentication Required ネットワーク認証が必要 非推奨

引用:
https://developer.mozilla.org/ja/docs/Web/HTTP/Status/100

所見

  • まとめるのがしんどかったです。笑 それほど多くの状態があることがわかりました。
  • 実際に404エラー等を発生させるにはどうすればいいのか(ページの設定、エラーハンドリング?など)についてはまだ理解できていないので、そちらはまた勉強してまいりたい。

Discussion