開発者ドキュメント

一般的なHTTPエラーコードのトラブルシューティング方法

序章

Webサーバーまたはアプリケーションにアクセスする場合、サーバーが受信するすべてのHTTP要求は、HTTPステータスコードで応答されます。 HTTPステータスコードは3桁のコードであり、5つの異なるクラスにグループ化されています。 ステータスコードのクラスは、最初の桁で識別できます。

このガイドは、最も一般的に発生するHTTPエラーコードの特定とトラブルシューティングに焦点を当てています。 システム管理者の観点から見た4xxおよび5xxステータスコード。 Webサーバーが特定のエラーコードでリクエストに応答する原因となる可能性のある多くの状況があります。一般的な潜在的な原因と解決策について説明します。

クライアントとサーバーのエラーの概要

クライアントエラー、または400〜499のHTTPステータスコードは、ユーザークライアント(つまり、 Webブラウザまたはその他のHTTPクライアント)。 これらのタイプのエラーはクライアントに関連していますが、潜在的な問題をサーバー構成で修正できるかどうかを判断するには、ユーザーが直面しているエラーコードを知ることが役立つことがよくあります。

サーバーエラー、または500〜599のHTTPステータスコードは、エラーが発生したことを認識した場合、またはその他の方法で要求を処理できない場合に、Webサーバーによって返されます。

一般的なトラブルシューティングのヒント

HTTPステータスコードの概要を理解したところで、一般的に発生するエラーについて見ていきます。

400不正な要求

400ステータスコードまたはBadRequest エラーは、サーバーに送信されたHTTPリクエストの構文が無効であることを意味します。

400BadRequestエラーが発生する可能性のあるいくつかの例を次に示します。

401無許可

401ステータスコードまたはUnauthorizedエラーは、リソースにアクセスしようとしているユーザーが認証されていないか、正しく認証されていないことを意味します。 これは、保護されたリソースを表示できるようにするには、ユーザーが資格情報を提供する必要があることを意味します。

このNginxチュートリアルのように、ユーザーがHTTP認証で保護されているリソースにアクセスしようとすると、401Unauthorizedエラーが返されるシナリオの例があります。 この場合、ユーザーは、有効なユーザー名とパスワード(に存在するもの)を提供するまで、401応答コードを受け取ります。 .htpasswd ファイル)をWebサーバーに送信します。

403禁止します

403ステータスコードまたはForbiddenエラーは、ユーザーが有効なリクエストを行ったが、リクエストされたリソースにアクセスする権限がないため、サーバーがリクエストの提供を拒否していることを意味します。 予期せず403エラーが発生した場合は、ここで説明するいくつかの一般的な原因があります。

ファイルのアクセス許可

403エラーは通常、Webサーバープロセスを実行しているユーザーが、アクセスされているファイルを読み取るための十分な権限を持っていない場合に発生します。

403エラーのトラブルシューティングの例を示すために、次の状況を想定します。

ユーザーが403Forbidden エラーを受け取っている場合は、 www-data ユーザーには、ファイルを読み取るための十分な権限があります。 通常、これは、ファイルのその他の権限読み取りに設定する必要があることを意味します。 これを確実にする方法はいくつかありますが、この場合、次のコマンドが機能します。

  1. sudo chmod o=r /usr/share/nginx/html/index.html

.htaccess

403エラーの別の潜在的な原因は、多くの場合意図的に、 .htaccess ファイル。 The .htaccess たとえば、ファイルを使用して、特定のIPアドレスまたは範囲への特定のリソースへのアクセスを拒否できます。

ユーザーが予期せずに403Forbiddenエラーを受け取った場合は、それが次の原因によるものではないことを確認してください。 .htaccess 設定。

インデックスファイルが存在しません

ユーザーがデフォルトのインデックスファイルを持たないディレクトリにアクセスしようとしていて、ディレクトリリストが有効になっていない場合、Webサーバーは403Forbiddenエラーを返します。 たとえば、ユーザーがアクセスしようとしている場合 http://example.com/emptydir/、およびにインデックスファイルがありません emptydir サーバー上のディレクトリでは、403ステータスが返されます。

ディレクトリリストを有効にする場合は、Webサーバー構成で有効にすることができます。

404お探しのページが見つかりませんでした

404ステータスコード、または Not Found エラーは、ユーザーがサーバーと通信できるが、要求されたファイルまたはリソースを見つけることができないことを意味します。

404エラーは、さまざまな状況で発生する可能性があります。 ユーザーが予期せず404NotFoundエラーを受け取った場合は、トラブルシューティング中に尋ねる質問がいくつかあります。

500内部サーバーエラー

500ステータスコード、または内部サーバーエラーは、サーバーが不明な理由で要求を処理できないことを意味します。 より具体的な5xxエラーがより適切な場合、このコードが表示されることがあります。

このエラーの最も一般的な原因は、サーバーの構成ミスです(例: 奇形 .htaccess ファイル)または不足しているパッケージ(例: PHPが正しくインストールされていない状態でPHPファイルを実行しようとしています)。

502不正なゲートウェイ

502ステータスコードまたはBadGateway エラーは、サーバーがゲートウェイまたはプロキシサーバーであり、実際に要求を満たす必要があるバックエンドサーバーから有効な応答を受信していないことを意味します。

問題のサーバーがロードバランサーなどのリバースプロキシサーバーである場合は、次の点を確認してください。

503サービスを利用できません

503ステータスコードまたはServiceUnavailable エラーは、サーバーが過負荷になっているか、メンテナンス中であることを意味します。 このエラーは、サービスがいつか利用可能になるはずであることを意味します。

サーバーがメンテナンス中でない場合は、サーバーにすべての着信要求を処理するのに十分なCPUまたはメモリリソースがないか、より多くのユーザー、スレッド、またはプロセスを許可するようにWebサーバーを構成する必要があることを示している可能性があります。

504ゲートウェイのタイムアウト

504ステータスコードまたはGatewayTimeout エラーは、サーバーがゲートウェイまたはプロキシサーバーであり、許可された期間内にバックエンドサーバーから応答を受信していないことを意味します。

これは通常、次の状況で発生します。

結論

これで、最も一般的なHTTPエラーコードとそれらのコードの一般的な解決策に精通しているので、Webサーバーまたはアプリケーションの問題をトラブルシューティングするための適切な基礎が得られるはずです。

このガイドに記載されていないエラーコードが発生した場合、または説明されたものに対する他の考えられる解決策を知っている場合は、コメントでそれらについて自由に話し合ってください。

モバイルバージョンを終了