注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
このガイドの目的は、Web フロントエンドと対話しているときに遭遇する HTTP エラーコードにどのように対応するかについての基本情報を提供することです。多くの技術は任意の Web インターフェースに一般的に適用可能ですが、ここでは Palantir プラットフォームを使用するコンテキストで説明します。
Webページを開こうとすると、ブラウザーはサーバーに対して一連のリクエストを行い、ページのコンテンツを取得します。サーバーはユーザーのリクエストを受け取り、それに応じたコンテンツを返すようにします。その後、ブラウザーはそのコンテンツを組み立ててページを表示します。
このガイドではリクエストの概念について後述しますが、ここではレスポンスに焦点を当てます。サーバーから返されるすべてのレスポンスには必ずステータスコードが含まれています。ステータスコードはサーバーが返すレスポンスの状態を示すもので、3桁の数字で表されます。この数字には特定の意味があり(通常は Internet Engineering Task Force によって定義されています)、ページの読み込みに失敗したときに「404」などの用語が表示されたことがあるかもしれません。ここでは、各コードの意味と、その情報を使用して簡単な修正や報告するためのエラーを見つける方法について詳しく説明します。
レスポンスに含まれる 3 桁の数字の最初の数字は、ステータスのカテゴリーを示します。このガイドで重要なカテゴリーは以下のとおりです:
それでは、いくつかの実際のコードを見ていきましょう。このリストは完全ではないことに注意してください。ここに記載されていない番号に遭遇した場合は、HTTP ステータスコードの完全なリスト ↗ を参照してください。
このエラーメッセージは、サーバーに送信したリクエストに内部的な問題があったことを示しています。Palantir の開発者はこのエラーコードがあまり発生しないように努めていますが、最も一般的な原因は不正なリクエスト構文で、これは通常は基礎となるコードで定義されています。ただし、一般的な「Bad request」エラーの原因は、リクエストに含まれるデータが多すぎてサーバーが処理できない場合です。
「401 - Unauthorized」の代わりに「403 - Forbidden」を目にすることが多いですが、意味は非常に似ています。一般に、401 エラーはリクエストが正しく構成されていたが、ユーザーがそのリクエストを行う権限がないことを意味します。403 との違いは、通常、ユーザーが認証を試みたが認証に失敗した場合や、ユーザーが「禁止」されている場合に予約されることです。
Forbidden エラーは、ユーザーが許可されていないリクエストを行ったことを示します。Palantir プラットフォームでこのエラーに遭遇する場合、ユーザーがアクセスしようとしているリソースにアクセスする権限がないことを示す ACL(アクセス制御リスト)ルールが存在する可能性があります。たとえば、ユーザーが許可されていないデータやサービスにアクセスしようとすると、「403 - Forbidden」が表示されることがあります。たとえば、ユーザーが Data Lineage アプリケーションにアクセスする権限がない場合、アクセスしようとすると「403 - Forbidden」が表示されることがあります。
このエラーは、存在しないものを要求したことを意味します。たとえば、特定のアセットが削除された場合、そのアセットにアクセスしようとすると「404 - Not Found」と表示されます。要求されたリソースが存在しないためです。
このエラーは、サーバーがリクエストを受信し、レスポンスを生成するために内部操作を実行する必要があることを示しています。しかし、このプロセス中にサーバー内部でエラーが発生しました。
たとえば、サーバーの仕事が 2 つの数字を含むリクエストを受け取り、最初の数字を 2 番目の数字で割ることであるとします。この場合、「8」と「2」の数字を含むリクエストをサーバーに送信すると、ステータスコード 200(成功)のレスポンスが返され、レスポンスには答え「4」が含まれます。しかし、「5」と「0」を送信すると、「5/0」を計算しようとしたときにサーバー内部でエラーが発生したため、「500 - Internal Server Error」が表示される可能性があります。Palantir プラットフォームのコンテキストでは、関係するサービスの内部を調査して内部で何がエラーを引き起こしたのかを特定する必要があります。通常、サービスを特定し、関連するログを探すことが必要です。このガイドの後半でこれについて説明します。
「Gateway」という用語は、サービス間の接続の背後に「間接」があることを指しています。たとえば、https://foundry.link/workspace/magic-app
を開こうとしたときにこのエラーが発生するとします。実際には、リクエストは 1 つのサーバー(「ゲートウェイ」サーバー)に到達し、ゲートウェイサーバーがユーザーのリクエストを転送します。注目すべき点は、magic-app はゲートウェイとは異なるサーバーで実行されている可能性が高いため、ゲートウェイはそのサーバー(「上流サーバー」と呼ばれる)にレスポンスを要求し、そのレスポンスをユーザーに返すことを意図しています。このエラーは、上流サーバーが無効なレスポンスを返したことを意味します。
このエラーは、サービスが存在することを示しています。さもなければ、404 エラーが返されていたでしょう。しかし、サービスはリクエストを処理できませんでした。これは、ダウンしているか過負荷になっていることが最も一般的な原因です。たとえば、Contour にリクエストが多すぎてさらにリクエストを処理できない場合、「503 - Service Unavailable」が表示されることがあります。これは、計算資源が不足しているか、メモリリークなどの内部バグが原因である可能性があります。
このエラーは「502 - Bad Gateway」と似ていますが、ゲートウェイサーバーが正しいリクエストを行ったものの、上流サーバーからタイムリーなレスポンスを受け取らなかったことを意味します。これには、ネットワーク接続の問題、サーバーのダウンタイム、サーバーの過負荷など、さまざまな理由があります。504 エラーが発生した場合、通常、アクセスしようとしているウェブサイトやウェブアプリケーションが一時的に利用できないことを意味します。通常は、ユーザーのデバイスやインターネット接続の問題ではありません。