HTTPステータスコードとは、レスポンスの一番上の行に表示される3桁の番号のことです。クライアントのWebブラウザとサーバの間では、HTTPリクエストに対してレスポンスが返されます。HTTPレスポンスでは、サーバが処理を実行し、その結果を「レスポンス行」「メッセージヘッダー」「エンティティボディ」の内容としてテキストで表示します。
Webサーバのアプリケーションが返す最も一般的なステータスコードは「200」です。この200は正常に処理ができたことを意味しており、私たちがWebサイトを閲覧している際には表示されず、結果だけがWebページとして表示されるため、気が付きにくいことがあります。一方、よく目にするのはエラーが発生したときです。Webサイトを閲覧しようとURLを入力した際に、Webブラウザで「404 Not Found」や「500 Internal Server Error」、「503 Service Unavailable」などが表示されたことはありませんか?これは、何らかのエラーが発生し、Webページが表示できなくなった場合の例です。以下に、各ステータスコードの種別と主な説明をまとめましたのでご覧ください。
HTTP 100番台 Informational(情報レスポンス)
クライアントからのリクエストを受け入れ、継続して処理中です。処理が始まったばかりのため、現在は処理中の状態です。ただし、HTTPプロトコルによるリクエストとレスポンスは一瞬の出来事であり、人間にはその速さを体感することがほとんどありません。大容量の動画処理の場合、プロトコルの切り替えにより処理に少し時間がかかり、タイミングがずれることがあります。
HTTPステータスコード | 説明 |
---|---|
100 Continue | リクエスト継続可能 |
101 Switching Protocol | プロトコルの切り替え |
102 Processing | 処理中 |
103 Early Hints | 早期に予測されるヘッダを伝達 |
HTTP 200番台 Success(成功レスポンス)
クライアントからリクエストがサーバに送信され、理解されて受理された状態です。リクエストが成功した後、サーバは処理を行い、クライアントにレスポンスを返します。私たちが普段インターネットを利用してWebページを見る際にはWebブラウザを使用しますが、Google Chromeの開発モードウィンドウの「Network」タブで、Webページ内に読み込まれた正常に処理されたファイル群の「Status Code 200」を確認することができます。
HTTPステータスコード | 説明 |
---|---|
200 OK | リクエストが正常に処理できた |
201 Created | リクエストが成功してリソースの作成が完了 |
202 Accepted | リクエストを受け取ったが処理はされていない |
203 Non-Authoritative Information | リクエストが成功したものの、変換プロキシによって 元のサーバーの200(OK)レスポンスからペイロードが変更された |
204 No Content | リクエストに対して送信するコンテンツは無いがヘッダは有用である |
205 Reset Content | クライアントにドキュメントビューをリセットするように指示 |
206 Partial Content | 要求された範囲のデータやリソースの一部分だけのリクエストが成功 |
HTTP 300番台 Redirection(リダイレクション)
リクエストを完了させるためには、追加的な処理が必要です。利用例を挙げて説明します。「300 Multiple Choices」は、パソコン画面とスマートフォン画面でWebアプリケーションが異なる場合に用います。レスポンシブWebデザインでワンソースのページでは表現が難しい場合、2つのサイトを作成し、ユーザーエージェントに応じて分散させます。一方、「301 Moved Permanently」は301リダイレクトと呼ばれ、恒久的にページを移動させる際に使用されます。Webサイトのリニューアル時には、ディレクトリを整備して変更があった場合、各ページにリダイレクト設定を行い、強制的にページ移動させます。
HTTPステータスコード | 説明 |
---|---|
300 Multiple Choice | リクエストに対して複数のレスポンスがあることを示す |
301 Moved Permanently | 恒久的に移動する |
302 Found | 一時的に移動する ※ Google検索エンジンの検索リストでは旧URLを示すため 将来的に元のURLに戻すなどの時に利用します。 |
304 Not Modified | 更新されていない ※正常に処理されていますがブラウザキャッシュの内容を表示している為、 サーバからダウンロードをしていません。 |
HTTP 400番台 Client Error(クライアントエラー)
4xx系のエラーは、クライアント(ユーザー)側で操作や入力に不備があった際に発生するエラーです。この系統のエラーが出てしまった場合は、一度ご自身の作業を見直してみましょう。
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 | サーバが拡張されたステータスコードを返すことが出来ない |
422 Unprocessable Entity | WebDAVの拡張ステータスコード リクエストは適正だが意味が異なるためサーバが返すことが出来ない |
423 Locked | WebDAVの拡張ステータスコード リクエスト内容がロックされているためサーバが返すことが出来ない |
425 Too Early | サーバが繰り返し処理が発生される可能性のあるリクエストと判断したため 処理が出来ないと判断した ※ 無限ループでサーバに高負荷がかかるリスクの可能性がある為 |
426 Upgrade Required | Upgrading to TLS Within HTTP/1.1の拡張ステータスコード HTTP/1.1にアップグレードが必要な為、サーバが処理できない |
429 Too Many Requests | 一定時間内にリクエスト数が多すぎるためアクセスを拒否した ※ DDos攻撃によるサーバダウンのリスクを回避する為 |
431 Request Header Fields Too Large | リクエストヘッダーが長すぎるためサーバ処理が拒否した |
HTTP 500番台 Server Error(サーバエラー)
5xx系のエラーはサーバ側に発生し、システム管理者が対応中であるため、クライアント側では復旧するまで何もできません。サーバ障害の復旧には時間がかかることがあるため、しばらく時間を置いてから再度アクセスすると、正常に表示されることがあります。レンタルサーバやクラウドサービスの多くでは、障害情報をお知らせする形で情報を配信している企業もあります。また、有名な大規模サービスで大きな障害が発生すると、TwitterなどのSNSで話題になったり、ポータルメディアのニュース記事で取り上げられることもあるため、目にすることもあるでしょう。システムが復旧した後に再度アクセスすると、Webサービスやクラウドなどのシステム環境に接続できるようになりますので、慌てずにまずは状況を把握しましょう。
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 | ネットワーク認証が必要 |