HTTPステータスコード一覧

HTTPステータスコード一覧 #

HTTPステータスコードとは一番上のレスポンス行で表示される3桁の番号のことです。クライアントのWebブラウザとサーバ間ではHTTPリクエストに対してレスポンスを返すことをします。HTTPレスポンスではクライアントのWebブラウザに結果を表示するためにサーバで処理を実行し、「レスポンス行」「メッセージヘッダー」「エンティティボディ」の内容でテキストで表示されます。
Webサーバのアプリケーションが返す一番多いステータスコードは「200」です。200は正常に処理ができたことを意味しているため、私たちがWebサイトを見ている時には表示せずに、結果だけがWebページの表示という形で表示されますので気が付きにくいです。しかし、よく目にするのはエラー出てしまった時です。Webサイトを閲覧しようとURLを入力したときに、Webブラウザで「404 Not Found 」や「500 Internal Server Error」や「503 Service Unavailable」などが表示してしまったことはありませんか?これは、何らかのエラーがあってWebページが見れなくなってしまったときの結果がWebブラウザに表示した例です。以下は種別と主な各ステータスコードの説明をまとめましたので御覧ください。 参考:HTTP レスポンスステータスコード(MDN web docs:mozilla)

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

クライアントからのリクエストを受け入れ可能で、継続して処理されている状態です。処理が始まった時点のタイミングなので処理中の状態であるが、httpsプロトコルによるリクエストとレスポンスは一瞬の出来事のため人間には体感できない程の速さで意識をすることは殆どありません。大容量の動画の処理の場合はプロトコル切り替えにより処理に少し時間がかかりタイミングが少しずれることもあります。

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 200 OK

HTTP 200 OKを確認するには、Google ChromeでF12キーを押すと開発ウィンドウが表示され状況を見ることができます。「Status」が200となっているファイルは正常に処理され画像であれば表示され、htmlやcssファイルであれば正常に読み込まれていることが確認でき、javascriptであれば読み込まれ動作している状態を示しています。

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

リクエストを完了させるために追加的な処理が必要です。利用例を元に説明をしますと、「300 Multiple Choice」はパソコン画面とスマートフォン画面でWebアプリケーションが別れている場合に用います。レスポンシブWebデザインでワンソースのページで表現が難しい場合に2つのサイトを作成しユーザエージェントに応じて分散します。「301 Moved Permanently」は301リダイレクトと呼ばれ、恒久的にページ移動をする場合に用いられます。Webサイトリニューアルの際に、ディレクトリを整備し変わった場合に各ページに対してリダイレクト設定をし強制的にページ移動をします。

HTTPステータスコード 説明 状態
300 Multiple Choice リクエストに対して複数のレスポンスがあることを示す 正常
301 Moved Permanently 恒久的に移動する 正常
302 Found 一時的に移動する
※ Google検索エンジンの検索リストでは旧URLを示すため
将来的に元のURLに戻すなどの時に利用します。
正常
304 Not Modified 更新されていない
※正常に処理されていますがブラウザキャッシュの内容を表示している為、
サーバからダウンロードをしていません。
正常

HTTP 301 Moved PermanentlyとHTTP 302 Foundの違い

HTTP 301とHTTP 302のリダイレクトは「移転が恒久的であれば301」で「移転が一時的であれば302」を利用します。利用例はHTTP 301 Moved Permanentlyであれば、Webサイトのリニューアルでディレクトリが変わった場合に恒久的にリダイレクトをするためHTTP301を利用します。HTTP 302 FoundはWebサイトがリニューアル中で一時的にURLが異なる為、いずれ元のURLに戻す場合や、グローバル化に対応したサイトで多言語化をしている場合に国別のIPアドレスで振り分けることなどで利用されることがあり、どれも一時的な移動で最終的には元のURLに戻ることを意味します。Google検索のSEOでは301と302のリダイレクト方法でも同じように扱われることになったため、旧URLのページランクが引き継がれるようになります。

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 ネットワーク認証が必要 エラー

HTTP400番台のエラーとクライアントサイドの対処方法 #

HTTP400番台のエラーがWebブラウザに表示してしまった場合は、クライアントサイト(ユーザ側)で対応が可能です。代表的なものはHTTP 404 Not Foundのエラーですがよく見かけることがあります。原因はWebブラウザに入力したURLがページが存在していないURLの場合に指定したアドレスでページが存在しないという意味でエラー表示になります。写真は403 Forbiddenですが、これは閲覧権限が無く、特定のユーザのみに閲覧権限があるページやディレクトリの場合にエラー表示が出ます。社内のネットワーク環境のみ閲覧できない場合や会員向けWebサイトの場合でディレクトリが特定の会員のみ閲覧可能である為、一般ユーザでは見ることが出来ない等、様々な理由があります。400番台のエラーが出てしまった場合はユーザ側で対応ができますので、原因を考えて対応するようにしましょう

HTTP 401 Unauthorized

HTTP 401 Unauthorizedは「アクセス権がない、または認証に失敗」のことで、原因は認証に必要なIDかパスワードが間違っている場合にでるエラーです。現在ではあまり見られませんが、過去の会員向けWebサイトではエラー画面が作成されていなければWebブラウザのデフォルト表示で「401 Unauthorized」と表示されていました。また正しいIDとパスワードの認証情報を入力してもエラーが出てしまう場合は、サーバ側に問題がある可能性もあります。クライアントサイドで正確に入力してもサーバ側の処理上、結果的にクライアントサイドのエラーが出てしまう場合もありますので、サーバ管理者やWebサイト管理者に連絡を取り解決する必要があります。HTTP 401 Unauthorizedは「正確な認証情報を入力する」と「復旧するまで暫く待つ」の方法しかないためIDとパスワード情報は忘れないように管理しておきましょう。

HTTP 403 Forbidden

HTTP 403 Forbiddenは「アクセス禁止」のことで、原因はクライアントサイドであれば何らかの理由で管理者によってアクセス禁止されている場合と、管理者側ではサーバの設定ミスやプログラムの設置ミスなどが考えられます。クライアントサイトではVPNなどの特定のネットワークからのアクセスのみ閲覧可能であったり、管理者向けのページやディレクトリを閲覧した場合など特定の人向けに設定した場合によく見られます。管理者側での対応は「.htaccess」ファイルの記述方法が誤っていないか確認をすることで、何らかの問題が見つかる可能性があります。

HTTP 404 Not Found

HTTP 404 Not Foundは「Webページが見つからない」のことで、原因はURLのスペルが間違っていることや、リダイレクトの設定が間違っていることなどURLに関係することです。対処方法はURLのスペルを見直して正しいURLに書き換えてページを表示することです。HTTP 404 Not FoundはURLに関係するケアレスミスで多いエラーですので十分に確認をしておきましょう。

HTTP 405 Method Not Allowed

HTTP 405 Method Not Allowedは「送信するクライアント側のメソッドが許可されていない」のことで、原因は許可されていないメソッドでアクセスをした場合に出現するエラーです。HTTPメソッドには、このページの上部でも説明をしましたが「GET」「HEAD」「POST」「PUT」「DELETE」「CONNECT」が存在し各役割があります。例えばセキュリティの観点からPOSTメソッドがサーバ側で無効化されている場合、掲示板のようにサイトに書き込むことが出来ないため、405 Method Not Allowedのエラーが出現することがあります。

HTTP500番台のエラーとサーバ障害の関連性 #

Webサーバ障害の発見の手がかりの一つとして、主にサーバに対してHTTPリクエストを送信するとステータスコードがエラーを返して判明します。システムの中核となるサーバなどで5xx Server Error(サーバエラー)のHTTPステータスコードが表示したら大規模障害に繋がりかねないため、迅速に障害を復旧をするべくインフラエンジニアは対応を実施しています。インフラエンジニアは普段からサーバ監視やサーバの定期的な運用でサーバの正常性を把握していますが、レンタルサーバやクラウドサービスのWebサーバの場合はWebサイト管理者でも直せる内容もあります。500番台のHTTPステータスコードはWebサイト管理者でも把握しておくべきことでエラーになってしまった場合はエラー内容に沿った対処が求められます。ここではHTTPステータスコードをもとにWebサーバ障害との関連性を詳しく解説します。
参考:ウェブページのエラーメッセージ(さくらのサポート情報)

HTTP 500 Internal Server Error

HTTP 500 Internal Server Errorは「何らかのサーバ内部エラー」という漠然とした意味ですので原因究明が難航するエラーです。主な考えられる原因は以下のリストに記載していますが、それでも復旧しなければ別の方法を考えるしかありません。

項目 内容 対処方法
ディレクトリのパーミッション CGI・PHPのパーミッション等に誤りがある 705または755に設定
.htaccessの記述方法 「記述」「書式」「文字コード・改行コード」に問題がある 正しく記述する
PHP情報の取得 .htaccessでPHP情報を取得している php.iniファイルを作成し設定する
CGI・PHPプログラム 正しく動作していない .htaccessの記述の見直しや
プログラムの書き方をサーバの仕様に合わせる
画像の保存形式 サーバが対応していない画像ファイルの形式 Webページで表示する.jpgや.png形式に
変換して保存しサーバにアップロードする

HTTP 502 Bad Gateway

HTTP 502 Bad Gatewayは「アクセス集中や転送量が多く、サーバが応答できない場合」などに表示されるエラーです。悪意のある攻撃者よりDDoS攻撃によるシステム全体に負荷がかかってしまっている場合は、レンタルサーバやクラウドサービスを利用している時は、他のユーザや契約をしている会社にも影響が出てしまっているため、サービス提供者は障害情報を出していますのでユーザは状況を確認する必要があります。
共用環境ではないサーバや共用環境のサーバで自身のアカウントだけが事象が出てしまった場合は、以下の原因が考えられます。

項目 内容 対処方法
一時的な負荷 瞬間的にサーバへのアクセスが増加したことで、
サーバの処理が出来なかった等
時間を置いてからアクセスをする、
アクセスが少ないと思われる時間帯に接続する
Webブラウザ Webブラウザにキャッシュデータが溜まって
負荷がかかってしまっている場合
Webブラウザのキャッシュクリアを試みる

HTTP 503 Service Unavailable

HTTP 503 Service Unavailableは「一時的にサーバにアクセスできずサービスが利用不可能になっている」場合に表示されるエラーです。アクセス転送量が多い、一時的にウェブアクセスが集中している、CGIプログラムが誤作動を起こしているなどが原因として考えられます。

項目 内容 対処方法
一時的な負荷 瞬間的にサーバへのアクセスが増加したことで、
サーバの処理が出来なかった等
時間を置いてからアクセスをする、
アクセスが少ないと思われる時間帯に接続する
大容量のデータ サーバ転送容量の限界を超えてしまった 転送量の多いコンテンツ(音声ファイルや動画など)を
分割して容量を少なくすることを試みる
CGIプログラム プログラムの誤作動によりサーバが処理できない SSH接続が可能な場合は、設置しているCGIプログラムについて、
動作不良プロセスがあるかどうか確認する

HTTP 504 Gateway Timeout

HTTP 504 Gateway Timeoutとは「リクエストを送ったサーバからの適切なレスポンスがなくタイムアウトした」のことです。原因はシステムの入り口に存在するゲートウェイやプロキシに対して想定以上の負荷がかかってしまい、応答できずにいる状態でエラー表示してしまう場合があります。

項目 内容 対処方法
一時的な負荷 瞬間的にアクセスが増加したことで、
ゲートウェイやプロキシが処理出来なかった等
時間を置いてからアクセスをする、
アクセスが少ないと思われる時間帯に接続する
大容量のデータ ゲートウェイやプロキシに対して
転送容量の限界を超えてしまった
転送量の多いコンテンツ(音声ファイルや動画など)を
分割して容量を少なくすることを試みる
Print Friendly, PDF & Email