【よく見るものを一覧で解説】HTTPステータスコードとは?コード番号別に詳しく解説
HTTPステータスコードとは、ウェブサイトにアクセスしたとき、正常な画面ではない場合に表示される3桁の数字のことです。
ウェブサイトにアクセスしたときに「404」や「503」といった数字が表示された経験はないでしょうか。HTTPステータスコードはたくさんの種類があり、それぞれ意味する内容が異なります。
そこで本記事では、それぞれのステータスコードが持つ意味や対処法、HTTPステータスコードの確認方法を解説します。
HTTPステータスコードについて知ることで、アクセスしたウェブサイトに何が起きているのかを理解できるようになるので、ぜひご参考にしてください。
この記事のポイント
- HTTPステータスコードは、特定の HTTP リクエストが正常に完了したかどうかを示す3桁の数値で表されるもの
- 大まかに200番台の成功レスポンス、300番台のリダイレクト、400番台のクライアントエラー、500番台のサーバエラーと覚えておきましょう
- 同じ番台でも、500 Internal Server Error、503 Service Unavailableなどそれぞれ意味が異なる
もし「よくわからないステータスコードが出ていて困っている」ということで本記事を読まれているようでしたら、
どうぞ遠慮なくこちらの無料相談フォームよりお気軽にご質問ください。
目次
HTTPステータスコードとは
HTTPステータスコードとは、サーバの情報処理の結果を表すコードのことを指します。
ウェブサイトにアクセスした際に、表示されることがある「404」や「503」といった3桁の数字で構成され、番号によってそれぞれ意味が異なります。例えば、ページがなくなっていてアクセスできない場合は「404」、サービスメンテナンス中などは「503」が表示されるなどです。
コードの番号によってどんな問題が起こっているのかがわかるため、ウェブサイトを運営・運用している方は、よく表示されるものだけでも覚えておくと良いでしょう。
HTTPステータスコードを確認する方法
ウェブサイトに問題が起こっていないか把握するためにも、HTTPステータスコードの確認方法も知っておくと便利です。
HTTPステータスコードを確認する方法は、簡単です。今回はChromeの場合を例に確認方法を紹介します。
- ブラウザーで確認したいWebサイトを開く
- F12キー、または「option+⌘+i」で開発者ツールを開く
- 「Network」を選択
すると、以下の赤枠の箇所でHTTPステータスコードが確認できます。
もし、表示されない場合は、そのままの状態で更新をしてみると表示されることがあるので試してみてください。
HTTP ステータスコードの分類(一覧)
前述したように、HTTPステータスコードはそれぞれ番号によって意味が違います。
詳しい内訳を紹介すると以下のとおりです。
HTTPステータスコード番号 | コードの内容 |
100~ | 情報レスポンス |
200~ | 成功レスポンス |
300~ | リダイレクション |
400~ | クライアントエラー |
500~ | サーバーエラー |
上記のように、何番台かで起こっている問題がわかります。ステータスコードの種類は数多くあるため、何番台がどういった問題のコードなのかだけでも覚えておくとエラーが出た際に慌てずに対処しやすいです。
HTTPステータスコード100番台 情報レスポンス
HTTPステータスコード100番台は、リクエストが「処理中」であることを意味するステータスコードです。
リクエストそのものは拒否されていませんが、クライアント(リクエストする側)はWebサーバの要求に従って対処する必要があります。
100番台のステータスコードには、以下の種類があります。
HTTPステータスコード詳細 | 意味 |
100 Continue | リクエスト継続中 |
101 Switching Protocols | プロトコルの切り替え |
102 Processing | 処理中 |
103 Early Hints | 早期のヒント |
「リクエスト継続中」を意味する「100 Continue」や、「プロトコルの切り替え」を意味する「101 Switching Protocols」、「処理中」を意味する「102 Processing」などがあります。とはいえ、100番台のステータスコードは一般的にほとんど見かけることはないでしょう。
HTTPステータスコード200番台 成功レスポンス
HTTPステータスコード200番台は、クライアントからのリクエストが正常に受付されたことを示すステータスコードです。
100番台のステータスコードより多く、以下のコードがあります。
HTTPステータスコード詳細 | 意味 |
200 OK | リクエスト成功 |
201 Created | 新たに作成されたリソースのURIが返される |
202 Accepted | リクエストが受理されたが、処理が完了していない |
203 Non-Authoritative Information | 信頼できない情報 |
204 No Content | リクエストが受理されたが、返すべきレスポンスエンティティの存在がない |
205 Reset Content | 内容のリセットやリフレッシュ |
206 Partial Content | 一部リクエストを受理 |
207 Multi-Status | 複数のステータスが存在する(WebDAVの拡張ステータスコード) |
208 Already Reported | すでに報告済み(WebDAVの拡張ステータスコード) |
226 IM Used | IMを使用している(Delta encoding in HTTPの拡張ステータスコード) |
多数の200番台ステータスコードが存在しますが、代表的なものは「200 OK」です。「200 OK」は、リクエストは成功しており、要求通りの情報がレスポンスされている状態です。
つまり、「正常にWebサイトが表示された」状態を示し、私たちがWebサイトを見ているときの多くが「200 OK」だといえます。
200 OK
200 OKとは、リクエストが成功したことを表すステータスコードです。
201 Created
主にPOSTリクエストが成功したことを表すステータスコードです。
202 Accepted
クライアントのリクエストはサーバーが正常に受理していますが、まだ実行されていないことを表すステータスコードです。リクエスト受理後、バッジ処理する場合などに使われます。
203 Non-Authoritative Information
オリジナルのサーバーとは別のサーバーから情報取得が成功したことを表すステータスコードです。
204 No Content
クライアントのリクエストが成功し、クライアントに返す必要のあるコンテンツが存在しないことを示すステータスコードです。
205 Reset Content
リクエストが成功し、その結果としてサーバーがクライアントに対して入力項目などのリセットをもとめるステータスコードです。
206 Partial Content
リクエストが成功し、サーバーが部分的なコンテンツのみを返す際に使用されるステータスコードです。
207 Multi-Status (WebDAVの拡張ステータスコード)
リクエストが成功し、複数のサーバーレスポンスが混ざっている場合に表示されます。
208 Already Reported (WebDAVの拡張ステータスコード)
クライアントのリクエストが成功し、そのリクエストのレスポンスの一部が以前にされている場合に表示されます。
同じ情報を繰り返し表示するのを防ぎ、容量を節約する際に使われます。
226 IM Used (WebDAVの拡張ステータスコード)
サーバーがリクエストを正常受理し、インスタンス操作の適用がリソースに対して実行されたことを示すステータスコードです。
HTTPステータスコード300番台 リダイレクション
HTTPステータスコード300番台は、「リダイレクト」が発生した際に表示されるステータスコードです。
100番台のステータスコードより多く、以下のコードがあります。
300番台のステータスコードの種類は、以下のとおりです。
HTTPステータスコード詳細 | 意味 |
300 Multiple Choices | リクエストが複数存在する |
301 Moved Permanently | ウェブサイトが恒久的に移転している |
302 Found | ウェブサイトが一時的に移動している |
303 See Other | 他のページを参照 |
304 Not Modified | リクエストしたリソースが更新されていない |
305 Use Proxy | プロキシを使用してリクエストを行わなければいけない |
306 (Unused) | 将来のために予約されている、現在は使われていない |
307 Temporary Redirect | 一時的なリダイレクト |
308 Permanent Redirect | 恒久的なリダイレクト |
リダイレクトとは、ウェブサイトが移転した場合に、古いサイトへアクセスした際、自動的に新しいサイトへと遷移する仕組みのことです。厳密にいえば、「リダイレクトを達成するためにブラウザ側で追加の処理を実行する必要がある」ことを意味しています。
リダイレクトについては、以下の記事にて詳しく解説しています。リダイレクトする意味や効果について知りたい方は、必見です!
300 Multiple Choices
リクエストに対して複数のレスポンスがあることを示します。
301 Moved Permanently
301 Moved Permanentlyとは、「恒久的に移動した」ことを表すステータスコードです。
301はウェブサイトが移転し、新サイトにリダイレクトされた場合などに用いられます。
また、URLの末尾に「/」をつけずにアクセスした場合も、自動的に「/」がついたサイトへ遷移するため「301 Moved Permanently」となることがあります。
リダイレクトをする方法は複数あり、301リダイレクトは代表的なリダイレクト方法です。301リダイレクトの特徴などについては、以下の記事にて解説していますのでご参照ください。
302 Found
302 Foundとは、「発見」を意味するステータスコードです。
リクエストした先のページが一時的に移動されている場合に用いられます。「301 Moved Permanently」との違いは、恒久的か一時的かという点です。
例えば、サイトメンテナンスで一時的にサイトを別の場所に移動しており、メンテナンス終了後にまた元の場所に戻す場合などが当てはまります。302リダイレクトの詳細については下記の記事にてまとめていますので、ご参考にしてください。
303 See Other
クライアントがリクエストした情報に対し、クライアントに特定にURLを返し続ける一時的なリダイレクトです。
ユーザーが「戻る」ボタンを押した際にフォームの再送信を防ぐなどの目的で用いられます。
304 Not Modified
304 Not Modifiedとは、「未更新」を表します。
これはリダイレクトではありませんが、補足的に説明をしておきます。正常にWebページが見られているときの多くは200ステータスが返ってきているのですが、実際には304ステータスのコンテンツが混ざっていることもあります。
この際、ウェブサーバからはメッセージボディ、つまりコンテンツが返ってきません。ブラウザ側では304を受け取ると、ブラウザ内のキャッシュに残っているコンテンツを使ってウェブページを表示しています。
画像などコンテンツ内容が基本的に変わることがないコンテンツは、304を返すように設定することで、再度リソースを読み込む必要なく、キャッシュを用いることでページを表示させられます。
305 Use Proxy
クライアントのリクエストに対して、レスポンスをプロキシからアクセスしなければならないことを表します。現在はこのステータスコードは非推奨とされています。
306 unused
現在は使用されていないステータスコードで、もともとはリクエストを処理するために別のプロキシサーバーを用意することをクライアントに示すステータスコードでした。
307 Temporary Redirect
307 Temporary Redirectとは、「一時的なリダイレクト」を意味するステータスコードです。
あまり見ることはありませんが、リクエストしたリソースが一時的に移動されている場合に用いられます。元々、このステータスコードは「302 Moved Temporarily」であり、302番で使われていたのですが、規格外の使用が目立つようになったため、改めて「307 Temporary Redirect」として定義されました。
ステータスコード307でリダイレクトされているのを見ると、正常でないと感じる方もいらっしゃるかもしれませんが、301リダイレクトとして処理されていますので、過度に心配しなくても大丈夫です。
308 Permanent Redirect
クライアントがリクエストした情報が恒久的に別のURLに移動していることを示します。
301よりも厳格なステータスコードで、HTTPメソッドの変更ができない点が違いとなります。
k\301・404はこちらの資料もチェック/
HTTPステータスコード400番台 クライアントエラー
HTTPステータスコード400番台は、「クライアントエラー」が出たときに表示されるステータスコードです。
100番台のステータスコードより多く、以下のコードがあります。
400番台のステータスコードとそれぞれの意味は、以下のとおりです。
ステータスコード | 意味 |
400 Bad Request | リクエストが不正 |
401 Unauthorized | 認証が必要 |
402 Payment Required | 支払いが必要 |
403 Forbidden | アクセス拒否、アクセス禁が禁止されている |
404 Not Found | 未検出、ページが見つからなかった |
405 Method Not Allowed | 許可されていないメソッド |
406 Not Acceptable | 受理ができない |
407 Proxy Authentication Required | プロキシの認証が必要 |
408 Request Timeout | タイムアウト、時間内にリクエストが完了できなかった |
409 Conflict | リソースと競合するので完了できない |
410 Gone | 移動または消滅した |
411 Length Required | Content-Length ヘッダーのないリクエストの受け入れを拒否 |
412 Precondition Failed | 前提条件が間違っている |
413 Payload Too Large | ペイロードが大きすぎる、サーバーの許容範囲を超えている |
414 URI Too Long | URIが大きすぎる |
415 Unsupported Media Type | メディアタイプがサーバーでサポートしていないもの |
416 Range Not Satisfiable | リソースを超えるデータを要求してしまっている |
417 Expectation Failed | Expectヘッダによる拡張ができない |
421 Misdirected Request | 間違ったリクエスト |
422 Unprocessable Entity | 処理ができないエンティティ |
422 Unprocessable Entity | 処理ができないエンティティ |
423 Locked | リクエストがロックされている |
424 Failed Dependency | 依存関係で失敗した(WebDAVの拡張ステータスコード) |
425 Too Early | Early dataを受け入れない |
426 Upgrade Required | アップグレードの要求 |
428 Precondition Required | 事前条件が必要、条件付きリクエストでなければいけない |
429 Too Many Requests | 要求が多く、サーバーが処理を拒否している |
431 Request Header Fields Too Large | リクエストヘッダーフィールドが大きすぎるので、サーバーが処理を拒否している |
451 Unavailable For Legal Reasons | 法的理由により利用できない |
400番台のステータスコードは非常に多いため、「403 Forbidden」「404 Not Found」「410 Gone」の代表的な3つのコードに絞って、それぞれ詳しく紹介します。
400 Bad Request
400 Bad Requestとは「不正なリクエスト」を表すステータスコードです。
ブラウザか端末のどちらかに原因があり、サーバーが要求を処理できなかったことを示します。
たとえばCookieのデータサイズが大きすぎて処理できない場合に見かけます。
ブラウザを変える、端末を変える、ブラウザ上でCookieを削除することで解消する場合が多いです。
401 Unauthorized
401 Unauthorizedとは「アクセス権がない、または認証失敗」を表すステータスコードです。
原因は認証に使用するパスワード、IDなどが間違っている場合に見られます。
セキュリティが厳しいサイトでは1度または複数回このエラーが起こると復旧するまで待つことが要求される場合があります。
このエラーの解消は正確なパスワード、IDを入力するか、復旧するまで待つことになります。
402 Payment Required
402 Payment Requiredとは「決済エラー通知」を表すステータスコードです。
HTTPステータスコードの中では特殊で、ほとんどのブラウザで使われていません。実験開発中のコードで、将来的に実装予定のものであり、現在もまだブラウザ上で使用されるHTTPステータスコードとしては標準化されていません。
オンライン決済中のエラー通知がメインの役割となります。
403 Forbidden
403 Forbiddenとは、「禁止されている」ことを表すステータスコードです。
リクエストはしたものの拒否されたり、処理できなかったりした場合に用いられます。例えば、社内のイントラネットからしかアクセスできないURLに、社外からアクセスした場合などに表示されます。
「403 Forbidden」が表示されたら、アクセス権の有無などを確認してみましょう。
404 Not Found
404 Not Foundとは、「リクエストしたウェブサイトが見つからない」場合に表示されるステータスコードです。
多くの人が一度は見たことのある表示でしょう。Webサイトが閉鎖されている場合や、Webサイト内の特定のページが消えている場合にアクセスすると「404 Not Found」と表示されます。
その際、そのまま「404」と表示すると、ユーザーが離脱してしまう可能性が高くなるため、カスタム404ページという、他のページへの導線を設けたページを表示させることが多いです。
また、404エラーを適切に対策しておくことは検索エンジン最適化(SEO)の基本項目です。SEOについて知りたい方はこちらをご覧下さい。
【参考】ソフト404エラー
ソフト404エラーとは、ブラウザ上では「ページが存在しない」ことを表すメッセージが表示されているものの、ステータスコードは「正常にレスポンスしている」という意味の「200OK」を返しているケースを「ソフト404エラー」と呼びます。
405 Method Not Allowed
405 Method Not Allowedとは、「サーバーがリクエストを理解しているが、無効にされているため使用できない」を意味するステータスコードです。
この場合はアクセス先のサーバー管理者に問い合わせる必要があります。
サーバー管理者側として解決策するためには、WordPressなどCMSのアップデートの見直しや、データベースが勝手に更新されていないかなど確認し、サーバー側の問題を特定していきます。
406 Not Acceptable
406 Not Acceptableとは、「サーバーがリクエストを理解しているが、サーバーがそのページをクライアントが開ける形式で表示することができない」を意味するステータスコードです。
もうすこし簡単に表現すると、サーバーはどんなコンテンツを表示すればよいか理解しているものの、それをユーザーが見ることのできる形で表示することができない状態です。
このエラーの主な対処方法はソースコードを確認し、Acceptされた要求内容の確認と、要求内容をどう返そうとしているのかを確認する形になります。
407 Proxy Authentication Required
407 Proxy Authentication Requiredとは、「クライアントエラー」を意味するステータスコードです。
サーバーではなくプロキシ認証のエラーである点が401との違いです。
408 Request Timeout
408 Request Timeoutとは、簡単に言えば「時間切れ」を意味するステータスコードです。
サーバーが混雑している場合などに表示されたり、インターネット接続が遅い場合に表示されることがあります。
少し時間を置いてからアクセスすると繋がることが多いです。
409 Conflict
409 Conflictとは、クライアントのリクエストがサーバーの現在の状態と矛盾、競合しているときに起きるステータスコードです。
たとえば複数人で編集をかけているときなどに発生します。
410 Gone
410 Goneとは、「消滅した」を意味するステータスコードです。
「404 Not Found」と同様にウェブサイトが見つからない場合に表示されます。「404 Not Found」との違いは、「ページが消滅しており二度と復活しない」を意味しているということです。
「410 Gone」は特別に設定しないと表示されず、通常は「404 Not Found」が使われます。
\ご不明な点は、ナイルにいつでもご相談ください!/
HTTPステータスコード500番台 サーバーエラー
ウェブサーバがリクエストの処理に失敗したステータスコードです。
500番台のステータスコードも400番台と同じくエラーコードとなります。
100番台のステータスコードより多く、以下のコードがあります。400番台と異なるのは、ウェブサーバ側にエラーの原因があることです。ウェブサーバがリクエストの処理に失敗した場合などに表示されます。
500番台のステータスコードの詳細は、以下のとおりです。
ステータスコード | 意味 |
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で定義されている拡張ステータスコード |
507 Insufficient Storage | リクエストを処理するのに容量が足りない |
508 Loop Detected | ループを検出 |
510 Not Extended | 拡張できない(An HTTP Extension Frameworkで定義されている拡張ステータスコード) |
511 Network Authentication Required | ネットワークに対する認証が必要 |
500番台のステータスコードで代表的なものは、「500 Internal Server Error」「503 Service Unavailabl」になります。
それぞれどういったステータスコードなのか詳しく見ていきましょう。
500 Internal Server Error
500 Internal Server Errorとは、「サーバ内部エラー」を意味するステータスコードです。
サーバの内部に何らかのエラーがあり、正常にリクエストを処理できずWebサイトを表示できない場合などに用いられます。
503 Service Unavailable
503 Service Unavailableとは、「サービス利用不可」を意味するステータスコードです。
ウェブサーバが過負荷状態に陥るなどして一時的にウェブサイトが表示できないときに用いられます。一気に大量のアクセスが集中すると発生するため、比較的見かけることの多いエラーコードです。
なお、サイトメンテナンスでサービスをストップさせている間には、「503 Service Unavailable」を返すことがGoogleから推奨されており、意図的に設置している場合は、不具合ではない場合もあります。
HTTPステータスコードが「0」と表示される場合
ここまで多くのHTTPステータスコードを紹介しましたが、それ以外にも度々「0」や「000」と表示されることがあるようです。
HTTPステータスコードには、「0」や「000」といったコードはありません。
「0」や「000」と表示されてしまった原因としては、以下が考えられるといわれています。
- 「CakePHP」や「PHP」のNetWorkライブラリのバグである
- ローカルファイルでHTMLファイルを開いて実行している
- サーバーリクエストを送った際に落ちてしまっていた際の仕様である
- 古いOperaのバージョンである
- URL転送ライブラリのバージョンが古いためである
- ブラウザーが認証処理できなかったためエラーとみなしたためである
それぞれ原因が異なりますが、下記3つの方法で解決できるようです。
- コードの見直し、書き方を変更する
- 使っているライブラリやブラウザーのアップデートする
- ファイルを開きっぱなしで実行していないか確認する
ちょっとしたミスでエラーにつながる可能性があるため、「0」や「000」と表示されてしまった際は、ぜひ上記のような問題がないかチェックしてみてください。
より深く知りたい人へ~HTTP レスポンスに関して
冒頭で解説した「HTTPレスポンス」の仕組みについて、もう少し詳しく説明します。
そもそも、“ウェブサイトにアクセスする”とはどういうことか考えてみましょう。私たちがPCやスマートフォンからウェブサイトにアクセスする場合、必ずモバイル回線やWi-Fiなどの通信が発生しています。
この通信を介して、ウェブサイトのファイルが存在するコンピュータ(ウェブサーバ)に「PC(スマホ)の画面にウェブサイトを表示してほしい」という「リクエスト」を送っているのです。
リクエストを受け取ったウェブサーバは、適切な「レスポンス」を返します。すなわち、「PC(スマホ)の画面にウェブサイトを表示してほしい」というリクエストに対して、「ウェブサイトのデータをPC(スマホ)に送る」というレスポンスを行うわけです。
私たちがインターネットを通じてウェブサイトにアクセスする場合、このように「リクエストし、レスポンスが返ってくる」というプロセスが裏で実行されています。
しかし、ごくまれに「リクエスト通りのレスポンスが返せないケース」が発生することがあります。例えば、アクセスしようとしたウェブサイトがすでに閉鎖されていて、ウェブサーバにファイルが存在しない場合です。
リクエストに対して正常に応えられないウェブサーバは、代わりに「リクエストに応えられない理由」をレスポンスします。これが「HTTPステータスコード」で表されているのです。
HTTPステータスコードの意味がわかると、エラーの原因を特定しやすい
HTTPステータスコードとは、ウェブサイトのデータをユーザーが「リクエスト」したのに対して、Webサーバ側の「レスポンス」として処理した際の結果です。
ステータスコードにはたくさんの種類があり、意味を知ることで「表示のルール」や「エラーの原因」を読み解けます。ウェブサイトを運営するのであればぜひ知っておきたい知識であり、ユーザーとしてウェブサイトを閲覧する際にも役立つことでしょう。
サイトリニューアルで後悔したくない方へ
サイトリニューアルによる検索流入悪化、コンバージョン悪化を防ぐポイントを資料にまとめました。無料相談もお気軽にご利用ください!リニューアル実施の前後は問いません!