Web 開発の世界では、HTTP エラー コードはユーザー エクスペリエンスと Web サイトの評判に影響を与える重要な役割を果たします。この記事では、サーバー エラー コードの完全なリストを検討し、その意味を分析し、問題を解決して Web アプリのパフォーマンスを最適化するためにサーバー応答コードを効果的に解釈する方法を学びます。
HTTPレスポンスコードとは何か
HTTP 応答コードは、ブラウザのリクエストを理解可能な指示に変換する Web サーバーの言語です。これは、仮想の質問に答えて、意味と方向性を与える詩人のようなものです。応答コードは、必ずしも HTTP エラー コードであるとは限りません。たとえば、「200 OK」はすべてが正常であることを意味しますが、HTTP エラー「404 Not Found」は、仮想空間でページが失われたことを意味します。各コードはサーバーの状態を一意に表現したもので、これを解読することで、仮想世界の反対側で何が起こっているかを理解できます。
1xx コード (情報)
HTTP プロトコルの 1xx ステータス コードは、サーバーとクライアント間の対話における最初のリンクのようなものです。リクエストに対する完全な応答を提供する代わりに、現在のステータスに関する情報を提供し、データ交換をより効率的にします。詳しく見てみましょう。
100 Continue。HTTPレスポンスコード。サーバーがユーザーに許可を与え、ユーザーが大きなリクエストを安全に送信し続けることを許可する。
101 プロトコルの切り替え。サーバーはクライアントに対し、例えばHTTPからより安全なHTTPSへ移行するなど、プロトコルのルールを変更することを通知します。この場合、「Upgrade」ヘッダーがプロトコルの変更に使用されます。
102 処理中。このコードは、サーバーがリクエストを受け付けたものの、複雑な処理でまだビジー状態であることを示すメッセージのようなものです。
103 初期ヒント。ここでは、サーバーはメインレスポンスの前にクライアントにいくつかの示唆的なヘッダーを送信し、近い将来に関係する可能性のあることについて警告します。
2xx コード (成功)
2xx グループの HTTP エラー コードは、サーバーからの要求が成功したことを示します。これらは基本的に、Web 通信の範囲内で「青信号」として機能し、すべてが計画どおりに進み、正常に完了したことを確認します。
200 OK。このステータスは、サーバーがGETメソッドによるリクエストを問題なく処理し、要求されたデータをレスポンスとして返した場合に使用されます。「Content-Type」ヘッダーはレスポンス内のコンテンツタイプを報告します。これは、リクエストが成功したことをクライアントに通知するものです。
201 Created。ここでサーバーは新しいリソースの作成を通知します。
202 Accepted。サーバーはリクエストが受け入れられたことをユーザーに通知しますが、応答には時間がかかります。
203 非公式情報。このコードは、公式ではない可能性があるが比較に使用できるデータをクライアントに提供します。
204 コンテンツなし。サーバーはリクエストを処理しましたが、追加のコンテンツを返していません。
205 コンテンツのリセット。ここでは、クライアントは送信後に現在のビューまたはデータをリセットするように指示されます。
206 部分コンテンツ。このケースは、レスポンスに要求されたコンテンツの一部のみが含まれていることを示します。「Content-Range」ヘッダーは、部分コンテンツの範囲を示します。
207 マルチステータス。サーバーはクライアントからの複数操作リクエストを正常に完了し、応答には各操作のステータスに関する情報が含まれています。
226 IM 使用済み。このコードは、サーバーが増分メタデータ (IM) メソッドを使用し、変更されたリソース部分のみをクライアントに渡すことで応答したことを示します。
3xx コード (リダイレクト)
HTTP プロトコルの 3xx コードは、ユーザーを新しいリソースの場所に誘導するポインターのようなものです。要求されたコンテンツを取得するには、または別のリソースにリダイレクトするには、後続の手順を実行する必要があることをクライアントに通知します。それぞれの詳細を見てみましょう。
300 複数選択。クライアントは、リソースの設置場所が複数存在することを示す信号を受け取り、それに応じて選択肢が提示されます。現在の状況では、「Location」ヘッダーにリソースの代替オプションが示されている場合があります。
301 Moved Permanently(恒久的に移動しました)。サーバーは、リソースが別の場所に恒久的に移動されたことをユーザーに報告します。
302 Found。このHTTPコードは、一時的なリダイレクトに似ています。サーバーは、リソースが一時的に別のURLで利用可能であることをコンシューマーに通知します。「Location」ヘッダーは、一時的なリダイレクト先の新しいURLを指します。
303 See Other。リソースが別の URL で利用可能であり、この新しいアドレスに GET リクエストを行う必要があることがクライアントに通知されます。
304 Not Modified。このステータスは、リソースが前回の要求以降変更されておらず、再度ダウンロードする必要がないことをクライアントに伝えます。要求を行う際、「If-Modified-Since」ヘッダーを使用して、リソースが変更されたかどうかを確認します。
305 プロキシを使用。応答として、サーバーは要求されたリソースにアクセスするために指定されたプロキシを使用する必要があると報告します。
306(予約済み) — このコードは予約されていますが、実際には使用されていません。
307 一時リダイレクト。このコードは 302 Found と似ていますが、クライアントが元のリクエストで使用されたリクエストメソッドに留まる必要があります。
308 恒久的リダイレクト。リソースが新しいURIに恒久的に移動したため、クライアントは今後のすべてのリクエストで新しいURIを使用する必要があることを示します。
4xx HTTP エラー (クライアント エラー)
HTTP 4xx エラー コードはクライアント エラーを示します。これは、問題が Web ブラウザーやアプリなどのユーザー側にあることを意味します。
400 Bad Request。構文エラー、無効なデータ、またはクライアント側のその他のエラーのため、サーバーはリクエストを処理できません。
401 認証エラー。構文エラー、無効なデータ、またはクライアント側のその他のエラーにより、サーバーはリクエストを処理できません。
402 支払いが必要です。このコードは現在有効ではなく、将来の使用のために予約されています。今後、リソースにアクセスする前に支払いが必要になる可能性があることを示している場合があります。
HTTPエラー403 Forbidden。クライアントは要求されたリソースにアクセスするための十分な権限を持っていません。
404 Not Found。要求されたリソースはサーバー上に存在しません。これは最もよくあるユーザーエラーの一つです。
405 メソッドが許可されていません。サーバーはこのリソースで指定されたリクエストメソッドをサポートしていません。「Allow」ヘッダーは、リソースで許可されているメソッドを示します。このコードでは、
406 受け入れ不可。サーバーはクライアントが受け入れ可能な形式でデータを提供できません。
407 プロキシ認証が必要です。要求されたリソースにアクセスするには、プロキシサーバーでの認証が必要です。
408 リクエストタイムアウト。サーバーはクライアントからのリクエストを待機していましたが、タイムアウトしました。「Retry-After」ヘッダーには、リクエストを再試行できるまでの時間が示されている場合があります。
409 競合。現在のリソースの状態との競合により、リクエストを完了できません。
410 Gone。要求されたリソースは以前は存在していましたが、現在は削除されており、復元される見込みはありません。
411 長さが必要です。サーバーはリクエストにコンテンツの長さを指定することを要求しています。この情報がない場合、エラーとみなされます。
412 前提条件が満たされませんでした。リクエストの前提条件が満たされていないため、実行できません。
413 ペイロードが大きすぎます。リクエストデータのサイズがサーバーの制限を超えています。
414 URIが長すぎます。リクエスト内のURIの長さが許容範囲を超えています。
415 サポートされていないメディアタイプ。サーバーはリクエストで指定されたデータタイプを処理できません。
416 Range Not Satisfiable。要求された範囲が現在のサーバーデータと一致しない場合のHTTPエラー。
417 期待値に失敗しました。「Expect」ヘッダーで指定された条件が満たされませんでした。
418 私はティーポットです。このコードはジョークとして含まれており、ユーザーまたはサーバーに対して実際のアクションを意味するものではなく、本格的なエラーでもありません。これは、サーバーがティーポットであり、コーヒーを淹れることができないことを示しています。
421 リクエストの転送エラー。リクエストまたはサーバー設定にエラーがあるため、サーバーはリクエストを処理できません。
422 処理不能なエンティティ。サーバーはリクエストを理解していますが、データエラーのため処理できません。
423 ロックされています。リソースがブロックされているため、処理できません。
424 依存関係の失敗。このリクエストは、未実行の別のリクエストに依存しています。
425 早すぎます。リクエストが早すぎるため、サーバーはリクエストを処理する準備ができていません。
426 アップグレードが必要です。サーバーはリクエストを処理するために、より高度なプロトコルを必要としています。
428 前提条件が必要です。サーバーは、リクエストに特定の前提条件が指定されていることを要求します。
429 リクエスト数が多すぎます。クライアントが短時間に多数のリクエストを送信したため、サーバーの制限を超えました。
431 リクエストヘッダーフィールドが大きすぎます。リクエストヘッダーが許容される最大サイズを超えています。
449 再試行。現在のサーバーではリクエストを実行できないが、別のサーバーでは正常に処理できることを示すため、クライアントは新しいURIを使用してリクエストを再試行する必要があります。
451 法的な理由により利用できません。このリソースは法的な理由により利用できません。
499 クライアントによるリクエスト終了。サーバーはリクエストを受信しましたが、処理完了前にクライアントによって接続が閉じられました。
HTTP 5xx エラー (サーバー エラー)
HTTP 5xx エラー コードはサーバーの問題を示します。これらのコードはサーバー側で問題が発生し、サーバーがユーザーのリクエストを正しく処理できないことを示します。詳しく見てみましょう。
HTTP エラー 500 内部サーバーエラー。サーバーが予期しない状況に遭遇し、リクエストの処理を完了できませんでした。「Server」ヘッダーには、エラーが発生したサーバーが示される場合があります。
501 Not Implemented。サーバーはクライアントのリクエストを処理するために必要な機能をサポートしていません。「Via」ヘッダーは、エラーが発生したプロキシサーバーを示している可能性があります。
502 Bad Gateway。このコードは、プロキシとして機能するサーバーが、別のサーバーから誤った応答を受け取ったことを意味します。
HTTPエラー503 サービス利用不可。サーバーは一時的にリクエストを処理できません。
504 ゲートウェイタイムアウト。プロキシとして機能するサーバーが、別のサーバーから時間内に応答を受信しませんでした。
505 HTTPバージョンがサポートされていません。サーバーはリクエストで指定されたHTTPプロトコルバージョンをサポートしていません。代替手段として、「Upgrade」ヘッダーにサポートされているプロトコルが示されている場合があります。
506 バリアントもネゴシエートします。このステータスは HTTP/1.1 では使用されませんが、サーバーがコンテンツネゴシエーションの曖昧さを引き起こす内部構成を検出した場合、このレスポンスを使用する場合があります。
507 ストレージ容量不足。サーバーのストレージ容量が不足しているため、リクエストを処理できません。
508 ループ検出。サーバーはリクエスト処理中にループを検出したため、無限ループを回避するためにリクエストの完了を拒否します。
509 帯域幅制限超過。このエラーは、リクエストやトラフィックの量が多すぎてサーバーの帯域幅を超過した場合に発生します。
510 延長されませんでした。クライアントはリクエストを継続するために追加の延長を転送する必要があります。
511 ネットワーク認証が必要です。クライアントはネットワークにアクセスするために認証を行う必要があります。
ページステータスコードを確認する方法
このセクションでは、ページ ステータス コードを確認するための主な 3 つの方法 (コマンド ライン、Web ブラウザー、独立したオンライン サービスの使用) について説明します。これらの方法にはそれぞれ独自の利点があり、さまざまな状況で役立ちます。
コマンドライン経由でサーバーの応答を確認する
コマンドラインを使用すると、Web ブラウザを使用せずにページのステータス コードを簡単に確認できます。この方法では、コマンドラインを開いて次のコマンドを使用する必要があります。
curl -I http://page-address
このコマンドは、指定された URL に HEAD リクエスト (ヘッダーのみのリクエスト) を送信し、HTTP ステータス コードを含む情報を表示します。
上記の例は、成功した応答コードを示しています。404 Not Found HTTP エラーなどのエラー コードを含む応答の場合、結果は次のようになります。
ブラウザコンソール経由でサーバーの応答を確認する
Web ブラウザの開発者コンソールには、ページ ステータス コードの確認など、さまざまな操作を実行するためのツールが用意されています。サーバー応答の HTTP コードを確認するには、使用しているブラウザに応じて開発者コンソール (Ctrl+Shift+K) または (Ctrl+shift+J) を開く必要があります。次に、「ネットワーク」セクションを選択し、目的のページを読み込みます。
独立したツールを使用してサーバーの応答を確認する
ウェブサイトのページステータスコードを確認するためのツールを提供する独立系のオンラインサービスは数多く存在します。これらのサービスは通常、リソースの可用性とパフォーマンスの概要を迅速に把握することを可能にします。それらはすべて同じ原理に基づいて動作します。例として、最も人気のあるリソースであるhttpstatus.ioを見てみましょう。
まず、サービス自体を開き、答えを知りたいページのアドレスを入力して、検証をリクエストする必要があります。
結果はページの下部に表示されます。
結論
結論として、HTTP エラー コードを理解し、読み取ることができることは、Web 開発やサーバー メンテナンスに携わるすべての人にとって重要なスキルであることを強調しておきます。各エラーを理解し、エラーを検出するためのツールを調べると、これらの Web サービスの側面を効果的に管理することが非常に重要である理由がわかります。