注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

HTTP エラーコードの理解

このガイドの目的は、ウェブフロントエンドと対話する際に遭遇する HTTP エラーコードに対処するための基本情報を提供することです。多くの手法は、どんなウェブインターフェースにも一般的に適用できますが、ここでは Foundry を使用する文脈で説明します。


HTTP エラーコードとは何ですか?

ウェブページを開こうとすると、ブラウザはページのコンテンツを取得するためにサーバーに一連のリクエストを行います。サーバーはユーザーのリクエストを受信し、どのようなコンテンツを提供すべきかを判断し、正しいコンテンツを含むレスポンスを送信することが目的です。ブラウザはそのコンテンツをまとめてページを表示します。

このガイドでは後でリクエストの概念について詳しく説明しますが、ここではレスポンスに焦点を当てています。サーバーが返す各レスポンスには常にステータスコードが含まれます。ステータスコードは、サーバーが提供するレスポンスのステータスを示します。これは、3桁の数字で表され、対応する意味があります(通常、インターネットエンジニアリングタスクフォースによって定義されます)。ページの読み込みに失敗したときにこれらを見たことがあるでしょう - "404" などの用語が馴染みがあるかもしれません。ここでは、各コードが何を意味し、その情報をどのように使用して簡単な修正を見つけたり、より良いエラーを報告したりできるかを詳しく説明します。

レスポンスに送信される 3 桁の数字の最初の桁は、ステータスのカテゴリーを表します。このガイドで重要なカテゴリーは以下の通りです。

  • 2xx:コードが 2 で始まる場合、リクエストは成功しました。通常、完全なコードは 200 であり、一般的な成功したリクエストとレスポンスを表します。
  • 4xx:コードが 4 で始まる場合、クライアントエラーによりリクエストが失敗しました。クライアントは、リクエストを行っているエンティティを指し、通常はその時点で使用しているブラウザやウェブページです。以下でこれらのコードの例をいくつか見ていきます。
  • 5xx:コードが 5 で始まる場合、サーバーエラーによりリクエストが失敗しました。これは通常、リクエストが適切に構成され、適切に行われたが、サーバーがそれを調べ、どのようなレスポンスを返すべきかを判断しようとしたときに何かがおかしくなったことを意味します。以下でこれらのコードの例をいくつか見ていきます。

それでは実際のコードに入っていきましょう。ここでのリストは完全ではなく、ここに記載されていない番号に遭遇した場合は、オンラインの完全なリスト(外部)を参照してください。


クライアントエラー

400 - 不正なリクエスト

このエラーメッセージは、サーバーに送信されたリクエスト内に内部的な問題があったことを示しています。Foundry 開発者は、このエラーコードが滅多に遭遇しないように努めています。なぜなら、最も一般的な原因は、基本的なコードで定義されているリクエスト構文の不適切な形式であるためです。ただし、「不正なリクエスト」エラーの一般的な原因の 1 つは、要求が大きすぎる場合で、サーバーが処理できる要求内のデータが多すぎる場合です。

トップに戻る


401 - 認証されていない

「403 - 禁止されている」の代わりに「401 - 認証されていない」をよく見ることがありますが、意味的には非常に類似しています。一般的に、401 エラーはリクエストが適切に構成されていたが、それを行う権限がないことを意味します。これが 403 と異なるのは、通常、認証を試みたが、認証が失敗したか、「禁止」されていると判断された場合に予約されていることです。

トップに戻る


403 - 禁止されている

禁止エラーは、許可されていないリクエストを行ったことを示しています。Foundry でこのエラーに遭遇することがよくあります。これは、ユーザーがアクセスしようとしているリソースにアクセスできないことを示す ACL(アクセス制御リスト)ルールがある場合です。たとえば、ユーザーが閲覧することが許可されていないデータがある場合や、サービスにも適用されます。ユーザーが Data Lineage アプリケーションを開くことが許可されていない場合、たとえば、それを試みたときに「403 - 禁止されている」が表示されることがあります。

トップに戻る


404 - 見つかりません

このエラーは、存在しないものをリクエストしたことを意味します。たとえば、特定のアセットが削除された場合、そのアセットにアクセスすることは「404 - 見つかりません」として表されます。リクエストしたリソースが存在しないためです。


サーバーエラーコード

500 - サーバー内部エラー

このエラーは、サーバーがリクエストを受け取り、レスポンスを生成するための内部操作を実行する必要があったことを示しています。ただし、このプロセス中にサーバー内部でエラーが発生しました。

たとえば、サーバーの仕事が、2つの数字を含むリクエストを受け取り、最初の数字を2つ目の数字で割ることだとします。この例では、サーバーに数字「8」と「2」のリクエストを送信すると、ステータスコード 200(成功)のレスポンスが返され、レスポンスには答え「4」が含まれます。ただし、「5」と「0」を送信すると、「500 - サーバー内部エラー」が表示されることがあります。これは、サーバーが 5/0 を計算しようとしたときに、内部でエラーが発生したためです。Foundry の文脈では、これは関連するサービスの内部を調べて、内部で発生していたエラーを特定する必要があることを意味します。これは通常、サービスを特定し、関連するログを探すことを意味します。これについては、このガイドの後半で詳しく説明します。

トップに戻る


502 - 不正なゲートウェイ

「ゲートウェイ」という用語は、サービス間の接続において、舞台裏で「間接」の要素があることを示しています。https://foundry.link/workspace/magic-appを開こうとしたときにこのエラーが発生したと仮定します。実際には、リクエストは単一のサーバー(「ゲートウェイ」サーバー)にヒットし、その後ゲートウェイサーバーがリクエストを渡します。特に、magic-app はゲートウェイとは別のサーバーで実行されている可能性が高いため、ゲートウェイはそのサーバー(「上流サーバー」と呼ばれる)にレスポンスを求める必要があります。このエラーは、上流サーバーが無効なレスポンスを提供したことを意味します。

トップに戻る


503 - サービス利用不可

このエラーは、サービスが存在することを示しています。なぜなら、そうでなければ 404 エラーが受け取られたでしょう。ただし、サービスはリクエストを処理できませんでした。これは、ダウンしているか、オーバーロードしていることが最も一般的な原因です。たとえば、Contour にリクエストが多すぎて、これ以上のリクエストに対処できない場合、「503 - サービス利用不可」が表示されることがあります。これは、計算リソースが不足しているか、メモリリークなどの内部バグによるものである場合があります。

トップに戻る


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

このエラーは「502 - 不正なゲートウェイ」と似ていますが、ゲートウェイサーバーは正しいリクエストを行い、上流サーバーから適切なレスポンスを受け取りませんでした。これは、ネットワーク接続の問題、サーバーのダウンタイム、またはサーバーの過負荷など、さまざまな理由で発生することがあります。504 エラーが発生すると、通常はユーザーがアクセスしようとしているウェブサイトやウェブアプリケーションが一時的に利用できなくなっていることを意味します。通常、ユーザーのデバイスやインターネット接続の問題ではありません。

トップに戻る