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

HTTP エラーコードを理解する

このガイドの目的は、Web フロントエンドと対話しているときに遭遇する HTTP エラーコードにどのように対応するかについての基本情報を提供することです。多くの技術は任意の Web インターフェースに一般的に適用可能ですが、ここでは Palantir プラットフォームを使用するコンテキストで説明します。


HTTP エラーコードとは?

Webページを開こうとすると、ブラウザーはサーバーに対して一連のリクエストを行い、ページのコンテンツを取得します。サーバーはユーザーのリクエストを受け取り、それに応じたコンテンツを返すようにします。その後、ブラウザーはそのコンテンツを組み立ててページを表示します。

このガイドではリクエストの概念について後述しますが、ここではレスポンスに焦点を当てます。サーバーから返されるすべてのレスポンスには必ずステータスコードが含まれています。ステータスコードはサーバーが返すレスポンスの状態を示すもので、3桁の数字で表されます。この数字には特定の意味があり(通常は Internet Engineering Task Force によって定義されています)、ページの読み込みに失敗したときに「404」などの用語が表示されたことがあるかもしれません。ここでは、各コードの意味と、その情報を使用して簡単な修正や報告するためのエラーを見つける方法について詳しく説明します。

レスポンスに含まれる 3 桁の数字の最初の数字は、ステータスのカテゴリーを示します。このガイドで重要なカテゴリーは以下のとおりです:

  • 2xx: コードが 2 で始まる場合、リクエストは成功しました。完全なコードは通常 200 であり、これは一般的な成功したリクエストとレスポンスを表します。
  • 4xx: コードが 4 で始まる場合、リクエストはクライアントエラーのために失敗しました。クライアントはリクエストを行うエンティティを指し、通常はブラウザーまたはその時点で使用している Web ページです。以下のコードの例を見てみましょう。
  • 5xx: コードが 5 で始まる場合、リクエストはサーバーエラーのために失敗しました。これは通常、ユーザーのリクエストが正しく構成されていても、サーバーがそれを処理しようとした際に何か問題が発生したことを意味します。以下のコードの例を見てみましょう。

それでは、いくつかの実際のコードを見ていきましょう。このリストは完全ではないことに注意してください。ここに記載されていない番号に遭遇した場合は、HTTP ステータスコードの完全なリスト ↗ を参照してください。


クライアントエラー

400 - Bad request

このエラーメッセージは、サーバーに送信したリクエストに内部的な問題があったことを示しています。Palantir の開発者はこのエラーコードがあまり発生しないように努めていますが、最も一般的な原因は不正なリクエスト構文で、これは通常は基礎となるコードで定義されています。ただし、一般的な「Bad request」エラーの原因は、リクエストに含まれるデータが多すぎてサーバーが処理できない場合です。

トップに戻る


401 - Unauthorized

「401 - Unauthorized」の代わりに「403 - Forbidden」を目にすることが多いですが、意味は非常に似ています。一般に、401 エラーはリクエストが正しく構成されていたが、ユーザーがそのリクエストを行う権限がないことを意味します。403 との違いは、通常、ユーザーが認証を試みたが認証に失敗した場合や、ユーザーが「禁止」されている場合に予約されることです。

トップに戻る


403 - Forbidden

Forbidden エラーは、ユーザーが許可されていないリクエストを行ったことを示します。Palantir プラットフォームでこのエラーに遭遇する場合、ユーザーがアクセスしようとしているリソースにアクセスする権限がないことを示す ACL(アクセス制御リスト)ルールが存在する可能性があります。たとえば、ユーザーが許可されていないデータやサービスにアクセスしようとすると、「403 - Forbidden」が表示されることがあります。たとえば、ユーザーが Data Lineage アプリケーションにアクセスする権限がない場合、アクセスしようとすると「403 - Forbidden」が表示されることがあります。

トップに戻る


404 - Not found

このエラーは、存在しないものを要求したことを意味します。たとえば、特定のアセットが削除された場合、そのアセットにアクセスしようとすると「404 - Not Found」と表示されます。要求されたリソースが存在しないためです。


サーバーエラーコード

500 - Internal server error

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

たとえば、サーバーの仕事が 2 つの数字を含むリクエストを受け取り、最初の数字を 2 番目の数字で割ることであるとします。この場合、「8」と「2」の数字を含むリクエストをサーバーに送信すると、ステータスコード 200(成功)のレスポンスが返され、レスポンスには答え「4」が含まれます。しかし、「5」と「0」を送信すると、「5/0」を計算しようとしたときにサーバー内部でエラーが発生したため、「500 - Internal Server Error」が表示される可能性があります。Palantir プラットフォームのコンテキストでは、関係するサービスの内部を調査して内部で何がエラーを引き起こしたのかを特定する必要があります。通常、サービスを特定し、関連するログを探すことが必要です。このガイドの後半でこれについて説明します。

トップに戻る


502 - Bad gateway

「Gateway」という用語は、サービス間の接続の背後に「間接」があることを指しています。たとえば、https://foundry.link/workspace/magic-app を開こうとしたときにこのエラーが発生するとします。実際には、リクエストは 1 つのサーバー(「ゲートウェイ」サーバー)に到達し、ゲートウェイサーバーがユーザーのリクエストを転送します。注目すべき点は、magic-app はゲートウェイとは異なるサーバーで実行されている可能性が高いため、ゲートウェイはそのサーバー(「上流サーバー」と呼ばれる)にレスポンスを要求し、そのレスポンスをユーザーに返すことを意図しています。このエラーは、上流サーバーが無効なレスポンスを返したことを意味します。

トップに戻る


503 - Service unavailable

このエラーは、サービスが存在することを示しています。さもなければ、404 エラーが返されていたでしょう。しかし、サービスはリクエストを処理できませんでした。これは、ダウンしているか過負荷になっていることが最も一般的な原因です。たとえば、Contour にリクエストが多すぎてさらにリクエストを処理できない場合、「503 - Service Unavailable」が表示されることがあります。これは、計算資源が不足しているか、メモリリークなどの内部バグが原因である可能性があります。

トップに戻る


504 - Gateway timeout

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

トップに戻る