完全なガイドとHTTPステータスコードのリスト
公開: 2020-02-24HTTPステータスコードは、Webページに貼り付けられるサーバーからの短いメモのようなものです。 それらは実際にはサイトのコンテンツの一部ではありません。 代わりに、サーバーからのメッセージであり、特定のページを表示する要求を受信したときに状況がどのように変化したかを通知します。
これらの種類のメッセージは、表示されていなくても、ブラウザがサーバーと対話するたびに返されます。 Webサイトの所有者または開発者の場合、 HTTPステータスコードを理解することが重要です。 それらが表示された場合、HTTPステータスコードは、Webサイトの構成エラーを診断および修正するための非常に貴重なツールです。
この記事では、いくつかのサーバーのステータスとエラーコードを紹介し、それらが舞台裏でサーバーで何が起こっているかについて明らかにします。
飛び込みましょう!
ビデオ版を見たいですか?
HTTPステータスコードとは何ですか?
リンクをクリックするか、URLを入力してEnterキーを押すたびに、ブラウザはアクセスしようとしているサイトのリクエストをWebサーバーに送信します。 サーバーはリクエストを受信して処理し、HTTPヘッダーとともに関連するリソースを送り返します。
HTTPステータスコードは、HTTPヘッダーでブラウザに配信されます。 ステータスコードは、ブラウザがWebページまたはリソースを要求するたびに返されますが、ほとんどの場合、ステータスコードは表示されません。
通常、何か問題が発生した場合にのみ、ブラウザに表示されることがあります。 これはサーバーの言い方です。「何かが正しくありません。 これが何が悪かったのかを説明するコードです。」

ブラウザに通常表示されないステータスコードを表示したい場合は、それを簡単にするさまざまなツールがあります。 ブラウザ拡張機能は、ChromeやFirefoxなどの開発者向けプラットフォームで利用でき、WebSnifferなどの多くのWebベースのヘッダーフェッチツールがあります。
これらのツールのいずれかでHTTPステータスコードを表示するには、レポートの上部に表示される「ステータス:HTTP/1.1」という行を探します。 この後に、サーバーから返されたステータスコードが続きます。
HTTPステータスコードクラスを理解する
HTTPステータスコードは5つの「クラス」に分けられます。 これらは、類似または関連する意味を持つ応答のグループです。 それらが何であるかを知ることは、特定の意味を調べる前に、ステータスコードの一般的な内容をすばやく判断するのに役立ちます。
5つのクラスは次のとおりです。
- 100s:ブラウザによって開始された要求が継続していることを示す情報コード。
- 200s:ブラウザの要求がサーバーによって受信され、理解され、処理されたときに返される成功コード。
- 300s:要求されたリソースの代わりに新しいリソースが使用されたときに返されるリダイレクトコード。
- 400s:リクエストに問題があったことを示すクライアントエラーコード。
- 500s:要求が受け入れられたが、サーバー上のエラーが要求の実行を妨げたことを示すサーバーエラーコード。
これらの各クラスには、さまざまなサーバーコードが存在し、サーバーから返される場合があります。 個々のコードにはそれぞれ固有の意味があります。これについては、以下のより包括的なリストで説明します。
検索エンジン最適化(SEO)でHTTPステータスコードとエラーが重要な理由
検索エンジンボットは、サイトをクロールしているときにHTTPステータスコードを確認します。 場合によっては、これらのメッセージは、ページがインデックスに登録されるかどうか、どのようにインデックスが作成されるか、および検索エンジンがサイトの状態をどのように認識するかに影響を与える可能性があります。
一般的に、100レベルおよび200レベルのHTTPステータスコードは、SEOに大きな影響を与えません。 それらは、すべてがサイトで正常に機能していることを通知し、検索エンジンボットが進行を継続できるようにします。 ただし、ランキングを上げることもありません。
ほとんどの場合、SEOにとって重要なのは高レベルのコードです。 400レベルおよび500レベルの応答により、ボットがページをクロールしてインデックスに登録するのを防ぐことができます。 これらのエラーが多すぎる場合は、サイトの品質が高くないことを示している可能性があり、ランキングが下がっている可能性があります。
300レベルのコードは、SEOとの関係が少し複雑です。 それらの影響を理解するために知っておく必要がある主なことは、永続的なリダイレクトと一時的なリダイレクトの違いです。これについては、以下の関連セクションで詳しく説明します。
ただし、一言で言えば、永続的なリダイレクトはバックリンクからのリンクの公平性を共有しますが、一時的なリダイレクトはそうではありません。 つまり、移動したページに一時的なリダイレクトを使用すると、これまでに行ったすべてのリンク構築のSEOの利点が失われます。
Google検索コンソールでのHTTPステータスコードの確認
GoogleがサイトのHTTPステータスコードをどのように認識するかを監視する1つの方法は、Google検索コンソールを使用することです。 カバレッジレポートでは、300、400、および500レベルのステータスコードを表示できます。

ダッシュボードのこの領域には、サイトの4種類のコンテンツが表示されます。
- エラーを返すページ。
- 警告のある有効なページ。
- 有効なリソース。
- インデックスから除外されたコンテンツ。
コードのタイプに応じて、300、400、および500レベルのHTTPステータスコードを含むページが、[除外] 、[エラー] 、または[警告付きで有効]セクションに表示される場合があります。 たとえば、301リダイレクトは、[リダイレクト付きのページとして除外]の下に表示される場合があります。

400レベルおよび500レベルのステータスコードは、エラーの下に表示される可能性があります。
HTTPステータスコードを表示する別の方法は、 URL検査ツールを使用することです。 エラーが原因でGoogleが特定のページのインデックスを作成できない場合は、次のように表示されます。

Google Search Consoleの使用に関するその他のヒントについては、プラットフォームの包括的なガイドをご覧ください。
完全なガイドとHTTPステータスコードのリスト
40を超えるさまざまなサーバーステータスコードがありますが、定期的に発生するのは1ダース未満です。 以下では、より一般的なコードと、まだ遭遇する可能性のあるよりあいまいなコードのいくつかについて説明しました。
HTTPステータスコードに困惑していませんか? WordPressの専門家が待機しています。 Kinstaを無料でお試しください。
100ステータスコード
100レベルのステータスコードは、サーバーに対して行ったリクエストが何らかの理由でまだ進行中であることを示しています。 これは必ずしも問題ではありません。何が起こっているかを知らせるための追加情報です。
- 100: 「続行します。」 これは、問題のサーバーがブラウザのリクエストヘッダーを受信し、リクエスト本文も送信できるようになったことを意味します。 これにより、ヘッダーが拒否された場合でもブラウザが本文リクエストを送信できなくなるため、リクエストプロセスがより効率的になります。
- 101: 「プロトコルの切り替え」。 ブラウザがサーバーにプロトコルの変更を要求し、サーバーが準拠しました。
- 103: 「初期のヒント。」 これにより、サーバーの残りの応答の準備が整う前に、いくつかの応答ヘッダーが返されます。
200ステータスコード
これは、受信するのに最適な種類のHTTPステータスコードです。 200レベルの応答は、すべてが正常に機能していることを意味します。
- 200: 「すべてがOKです。」 これは、Webページまたはリソースが期待どおりに動作するときに配信されるコードです。
- 201: 「作成されました。」 サーバーはブラウザーの要求を満たし、その結果、新しいリソースを作成しました。
- 202: 「承認されました。」 サーバーはブラウザの要求を受け入れましたが、まだ処理中です。 リクエストは、最終的には完全なレスポンスになる場合とされない場合があります。
- 203: 「信頼できない情報」。 このステータスコードは、プロキシが使用されているときに表示される場合があります。 これは、プロキシサーバーがオリジンサーバーから200の「すべてがOK」ステータスコードを受信したが、ブラウザに渡す前に応答を変更したことを意味します。
- 204: 「コンテンツなし。」 このコードは、サーバーがリクエストを正常に処理したが、コンテンツを返さないことを意味します。
- 205: 「コンテンツをリセットします。」 204コードと同様に、これは、サーバーがリクエストを処理したが、コンテンツを返さないことを意味します。 ただし、ブラウザがドキュメントビューをリセットする必要もあります。
- 206: 「部分的なコンテンツ」。 HTTPクライアント(ブラウザとも呼ばれます)が「範囲ヘッダー」を使用している場合、このステータスコードが表示されることがあります。 これにより、ブラウザは一時停止したダウンロードを再開したり、ダウンロードを複数のストリームに分割したりできます。 範囲ヘッダーによってサーバーが要求されたリソースの一部のみを送信する場合、206コードが送信されます。
300ステータスコード
リダイレクトは、リソースが新しい場所に移動されたことを通知するために使用されるプロセスです。 訪問者に探しているコンテンツの場所に関する情報を提供するために、リダイレクトに付随するいくつかのHTTPステータスコードがあります。
- 300: 「複数の選択肢。」 場合によっては、ブラウザの要求を満たすためにサーバーが応答できるリソースが複数ある可能性があります。 300ステータスコードは、ブラウザがそれらから選択する必要があることを意味します。 これは、使用可能なファイルタイプ拡張子が複数ある場合、またはサーバーで語義の曖昧性解消が行われている場合に発生する可能性があります。
- 301: 「要求されたリソースは永続的に移動されました。」 このコードは、Webページまたはリソースが恒久的に別のリソースに置き換えられたときに配信されます。 永続的なURLリダイレクトに使用されます。
- 302: 「要求されたリソースは移動しましたが、見つかりました。」 このコードは、要求されたリソースが、予期された場所ではなく、見つかったことを示すために使用されます。 一時的なURLリダイレクトに使用されます。
- 303: 「その他を参照してください。」 303ステータスコードを理解するには、4つの主要なHTTPリクエストメソッドの違いを知っている必要があります。 基本的に、303コードは、ブラウザがPOST、PUT、またはDELETEを介して要求したリソースを検出したことをブラウザに通知します。 ただし、GETを使用して取得するには、以前に使用したURLとは異なるURLに対して適切なリクエストを行う必要があります。
- 304: 「要求されたリソースは、最後にアクセスしてから変更されていません。」 このコードは、ブラウザのキャッシュに保存されているリソースが変更されていないことをブラウザに通知します。 以前にダウンロードしたリソースを再利用することにより、Webページの配信を高速化するために使用されます。
- 307: 「一時的なリダイレクト。」 このステータスコードは、リソースが一時的に別のURLに移動された場合の適切なアクションとして、302「Found」に置き換わりました。 302ステータスコードとは異なり、HTTPメソッドを変更することはできません。
- 308: 「永続的なリダイレクト。」 308ステータスコードは、301「永久に移動」コードの後継です。 HTTPメソッドを変更することはできず、要求されたリソースが新しいURLに永続的に配置されていることを示します。
400ステータスコード
400レベルでは、HTTPステータスコードが問題になり始めます。 これらは、ブラウザやリクエストに問題があることを示すエラーコードです。

- 400: 「悪いリクエスト。」 クライアント側のエラーのため、サーバーは応答を返すことができません。 このエラーの解決については、ガイドを参照してください。
- 401: 「未承認」または「承認が必要です。」 これは、ターゲットリソースに有効な認証資格情報がない場合にサーバーから返されます。 htpasswdを使用して基本HTTP認証を設定した場合、これが表示されることがあります。

- 402: 「支払いが必要です。」 もともと、このコードはデジタルキャッシュシステムの一部として使用するために作成されました。 しかし、その計画は決して実行されませんでした。 代わりに、さまざまなプラットフォームで使用され、通常は必要な資金が不足しているために、リクエストを実行できないことを示します。 一般的な例は次のとおりです。
- GoogleDevelopersAPIに対する1日のリクエスト制限に達しました。
- Shopifyの料金を支払っていないため、ストアが一時的に非アクティブ化されています。
- Stripeによる支払いが失敗したか、Stripeが不正な支払いを防止しようとしています。
- 403: 「そのリソースへのアクセスは禁止されています。」 このコードは、ユーザーが表示権限のないものにアクセスしようとしたときに返されます。 たとえば、ログインせずにパスワードで保護されたコンテンツにアクセスしようとすると、403エラーが発生する可能性があります。
- 404: 「要求されたリソースが見つかりませんでした。」 これは、それらすべての中で最も一般的なエラーメッセージです。 このコードは、要求されたリソースが存在せず、サーバーがそれが存在したかどうかを認識しないことを意味します。
- 405: 「メソッドは許可されていません。」 これは、ホスティングサーバー(オリジンサーバー)が受信したメソッドをサポートしているが、ターゲットリソースはサポートしていない場合に生成されます。
- 406: 「受け入れられない応答。」 要求されたリソースは、要求で送信されたacceptヘッダーに従って受け入れられないコンテンツのみを生成できます。
- 407: 「プロキシ認証が必要です。」 プロキシサーバーが使用中であり、続行する前にブラウザが自身を認証する必要があります。
- 408: 「サーバーはブラウザーからの残りの要求を待ってタイムアウトしました。」 このコードは、ブラウザからの完全な要求を待っている間にサーバーがタイムアウトしたときに生成されます。 つまり、サーバーはブラウザーから送信された完全な要求を取得しませんでした。 考えられる原因の1つは、ブラウザとサーバー間のデータパケットの損失につながるネット輻輳である可能性があります。
- 409: 「対立。」 409ステータスコードは、関連するリソースとの競合があるため、サーバーがブラウザのリクエストを処理できなかったことを意味します。 これは、複数の同時編集が原因で発生することがあります。
- 410: 「要求されたリソースはなくなり、戻ってくることはありません。」 これは404「見つかりません」コードに似ていますが、410が条件が予期されて永続的であることを示している点が異なります。
- 411: 「必要な長さ。」 これは、要求されたリソースがクライアントに特定の長さを指定することを要求し、それが指定しなかったことを意味します。
- 412: 「前提条件が失敗しました。」 ブラウザのリクエストヘッダーに特定の条件が含まれていて、サーバーがそれらの仕様を満たしていませんでした。
- 413: 「ペイロードが大きすぎます」または「エンティティが大きすぎます。」 あなたのリクエストは、サーバーが処理しようとしている、または処理できるよりも大きいです。
- 414: 「URIが長すぎます。」 これは通常、サーバーが処理するには大きすぎるクエリ文字列としてエンコードされたGETリクエストの結果です。
- 415: 「サポートされていないメディアタイプ。」 リクエストには、サーバーまたはリソースがサポートしていないメディアタイプが含まれています。
- 416: 「範囲が満足できない。」 あなたの要求は、サーバーが返すことができないリソースの一部に対するものでした。
- 417: 「期待に失敗しました。」 サーバーは、リクエストのexpectヘッダーフィールドで指定された要件を満たすことができません。
- 418: 「私はティーポットです。」 このコードは、コーヒーを淹れるリクエストを受け取るティーポットによって返されます。 1998年のエイプリルフールのジョークでもあります。

- 422: 「処理できないエンティティ。」 クライアント要求にセマンティックエラーが含まれており、サーバーはそれを処理できません。
- 425: 「早すぎる。」 このコードは、サーバーが再生される可能性があるためにリクエストを処理することを望まない場合に送信されます。
- 426: 「アップグレードが必要です。」 リクエストのアップグレードヘッダーフィールドの内容により、クライアントは別のプロトコルに切り替える必要があります。
- 428: 「前提条件が必要です。」 サーバーでは、リクエストを処理する前に条件を指定する必要があります。
- 429: 「リクエストが多すぎます。」 これは、ユーザーが指定された時間内に送信したリクエストが多すぎる場合にサーバーによって生成されます(レート制限)。 これは、ボットまたはスクリプトがサイトにアクセスしようとしたことが原因で発生する場合があります。 この場合、WordPressのログインURLを変更してみてください。 429「TooManyRequests」エラーを修正するためのガイドも確認できます。

- 431: 「リクエストヘッダーフィールドが大きすぎます。」 ヘッダーフィールドが大きすぎるため、サーバーはリクエストを処理できません。 これは、単一のヘッダーフィールド、またはそれらすべてのヘッダーフィールドに問題があることを示している可能性があります。
- 451: 「法的理由により利用できません。」 サーバーのオペレーターは、要求されたリソース(または要求されたものを含む一連のリソース)へのアクセスを禁止する要求を受け取りました。 おもしろい事実:このコードは、レイ・ブラッドベリの小説「華氏451度」への参照です。
- 499: 「クライアントはリクエストを閉じました。」 これは、Nginxがまだ処理している間にクライアントがリクエストを閉じると、NGINXによって返されます。
HTTPステータスコードに困惑していませんか? WordPressの専門家が待機しています。 Kinstaを無料でお試しください。
500ステータスコード
500レベルのステータスコードもエラーと見なされます。 ただし、問題がサーバー側にあることを示しています。 これにより、解決がより困難になる可能性があります。
- 500: 「サーバーでエラーが発生し、リクエストを完了できませんでした。」 これは、単に「内部サーバーエラー」を意味する一般的なコードです。 サーバーで問題が発生し、要求されたリソースが配信されませんでした。 このコードは通常、サードパーティのプラグイン、欠陥のあるPHP、またはデータベースへの接続の切断によって生成されます。 データベース接続の確立エラーを修正する方法や、500内部サーバーエラーを解決するその他の方法に関するチュートリアルを確認してください。

- 501: 「実装されていません。」 このエラーは、サーバーが要求を満たすために必要な機能をサポートしていないことを示しています。 これはほとんどの場合、Webサーバー自体の問題であり、通常はホストによって解決される必要があります。 501が実装されていないエラーを解決する方法に関する推奨事項を確認してください。
- 502: 「悪いゲートウェイ」。 このエラーコードは通常、プロキシサーバーが使用されている場合など、あるサーバーが別のサーバーから無効な応答を受信したことを意味します。 また、クエリまたはリクエストに時間がかかりすぎるため、サーバーによってキャンセルまたは強制終了され、データベースへの接続が切断される場合もあります。 詳細については、502BadGatewayエラーを修正する方法に関する詳細なチュートリアルを参照してください。
- 503: 「サーバーは現在このリクエストを処理できません。」 現時点ではリクエストを完了できません。 このコードは、追加のリクエストを処理できない過負荷のサーバーから返される場合があります。 503 ServiceUnavailableErrorを修正する方法に関する完全なガイドがあります。
- 504: 「ゲートウェイとして機能しているサーバーが、別のサーバーが応答するのを待ってタイムアウトしました。」 これは、要求の処理に2つのサーバーが関与していて、最初のサーバーが2番目のサーバーの応答を待機しているときに返されるコードです。 504エラーを修正する方法の詳細については、専用ガイドをご覧ください。
- 505: 「HTTPバージョンはサポートされていません。」 サーバーは、クライアントがリクエストを行うために使用したHTTPバージョンをサポートしていません。
- 508 :ウェブホストによって設定されたリソースの「リソース制限に達しました」制限に達しました。 「508ResourceLimitIsReached」エラーを解決する方法についてのチュートリアルを確認してください。
- 511: 「ネットワーク認証が必要です。」 このステータスコードは、使用しようとしているネットワークがサーバーにリクエストを送信する前に何らかの形式の認証を必要とする場合に送信されます。 たとえば、公共Wi-Fiホットスポットの利用規約に同意する必要がある場合があります。
- 521: 「Webサーバーがダウンしています。」 エラー521はCloudflare固有のエラーメッセージです。 これは、WebブラウザーがCloudflareに正常に接続できたが、Cloudflareが元のWebサーバーに接続できなかったことを意味します。
- 525 :「SSLハンドシェイクに失敗しました」。 エラー525は、Cloudflareを使用するドメインとオリジンWebサーバー間のSSLハンドシェイクが失敗したことを意味します。 問題が発生している場合は、エラー525を簡単に修正するための5つの方法があります。
HTTPステータスコードの詳細については、こちらをご覧ください
このリストで取り上げたHTTPステータスコードに加えて、もっとわかりにくいものについて学びたいと思うかもしれません。 これらのまれなコードを読むために参照できるリソースがいくつかあります。
- ウィキペディアからのHTTPステータスコードのこの包括的なリスト。
- インターネット技術特別調査委員会(IETF)からのステータスコード定義。
- RFC7231。
これらのステータスコードを知っていると、自分のWebサイトを維持しながら、または他のサイトでそれらに遭遇した場合でも、いくつかの固有の問題を解決するのに役立つ場合があります。
概要
表面上は混乱したり威圧的に見えたりするかもしれませんが、HTTPステータスコードは実際には非常に有益です。 一般的な問題のいくつかを学習することで、サイトの問題をより迅速にトラブルシューティングできます。
この投稿では、発生する可能性のある40以上のHTTPステータスコードを定義しました。 軽度の100レベルおよび200レベルのコードから、トリッキーな400レベルおよび500レベルのエラーまで、これらのメッセージを理解することは、Webサイトを維持し、ユーザーがアクセスできるようにするために重要です。