注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
このガイドでは、Web フロントエンドを操作しているときに遭遇する HTTP エラーコードへの対処方法について、基本的な情報を提供します。多くの方法はどの Web インターフェースにも広く適用できますが、ここでは Palantir プラットフォームを使用する場合を例に説明します。
Web ページを開こうとすると、ブラウザーはページのコンテンツを取得するために、一連のリクエストをサーバーに送信します。想定される流れは、サーバーがリクエストを受信し、その内容を調べてどのコンテンツを返すべきかを判断したうえで、適切なコンテンツを含むレスポンスを送信するというものです。その後、ブラウザーがコンテンツを組み合わせてページを表示します。
このガイドでは後ほどリクエストの概念を詳しく説明しますが、ここではレスポンスに注目します。サーバーが返すレスポンスには、必ずステータスコードが含まれます。ステータスコードは、サーバーが返すレスポンスのステータスを示します。これは3桁の数字で表され、それぞれに対応する意味があります(通常は Internet Engineering Task Force によって定義されています)。ページの読み込みに失敗したときに、こうしたコードを見たことがあるでしょう。「404」などの用語は、なじみがあるかもしれません。ここでは、それぞれのコードの意味と、その情報を使って簡単な解決策を見つけたり、より的確にエラーを報告したりする方法を、もう少し詳しく説明します。
レスポンスで送信される3桁の数字の最初の桁は、ステータスのカテゴリーを表します。このガイドで重要なカテゴリーは次のとおりです。
以降のセクションでは、具体的なコードをいくつか説明します。ただし、この一覧は網羅的なものではありません。ここに記載されていない番号に遭遇した場合は、HTTP ステータスコードの全一覧 ↗を参照できます。
このエラーメッセージは、サーバーに送信したリクエストの内部に問題があったことを示します。最も一般的な原因はリクエスト構文が不正であることであり、この構文は通常、基盤となるコードで定義されているため、Palantir の開発者はこのエラーコードがめったに発生しないよう努めています。ただし、「不正なリクエスト」エラーのよくある原因の1つは、リクエストが大きすぎることです。この場合、リクエストに含まれるデータが多すぎて、サーバーが処理できません。
「401 - 未認証」よりも「403 - アクセス禁止」の方がはるかによく見られますが、両者の意味は非常によく似ています。一般に、401エラーは、リクエストの形式は適切であるものの、そのリクエストを行う権限がないことを意味します。403との違いは、通常、認可を得ようとしてその認可に失敗した場合や、「利用禁止」としてフラグが付けられた場合に限って使われる点です。
アクセス禁止エラーは、許可されていないリクエストを行ったことを示します。Palantir プラットフォームでは、アクセスしようとしているリソースへのアクセスを禁止する ACL(アクセス制御リスト)ルールがある場合に、このエラーが発生することがあります。対象は、たとえばユーザーに閲覧権限がないデータである場合もありますが、サービスにも適用されます。たとえば、Data Lineage アプリケーションへのアクセス権限がないユーザーがアクセスしようとすると、「403 - アクセス禁止」が表示されることがあります。
このエラーは、存在しないものをリクエストしたことを意味します。たとえば、特定のアセットが削除された場合、そのアセットにアクセスすると、リクエストしたリソースが存在しないため、「404 - 見つかりません」が表示されます。
このエラーは、サーバーがリクエストを受信し、レスポンスを生成するために内部処理を行う必要があったものの、その処理中にサーバー内で内部エラーが発生したことを示します。
たとえば、サーバーの役割が、2個の数値を含むリクエストを受信し、最初の数値を2番目の数値で割ることだとします。この例では、「8」と「2」という数値を含むリクエストをサーバーに送信すると、ステータスコード200(成功)のレスポンスが返され、そのレスポンスには答えの「4」が含まれます。しかし、「5」と「0」を送信すると、サーバーが5/0を計算しようとして内部でエラーが発生するため、「500 - サーバー内部エラー」が表示されることがあります。Palantir プラットフォームの場合、これは、内部でどのようなエラーが発生していたかを特定するために、該当するサービスの内部を調べる必要があることを意味します。
「ゲートウェイ」という用語は、サービス間の接続において、背後で「間接的なやり取り」が行われていることを指します。https://foundry.link/workspace/magic-app を開こうとしたときに、このエラーが発生したとします。実際には、リクエストが1台のサーバー(「ゲートウェイ」サーバー)に届き、その後、ゲートウェイサーバーがそのリクエストを転送します。特に、magic-app はおそらくゲートウェイとは別のサーバーで動作しているため、ゲートウェイはそのサーバー(「上流サーバー」と呼ばれます)にレスポンスを要求し、そのレスポンスを返そうとします。このエラーは、上流サーバーが無効なレスポンスを返したことを意味します。
このエラーは、サービス自体は存在することを示します。存在しなければ、404エラーが返されるためです。ただし、サービスはリクエストを処理できませんでした。最も一般的な原因は、サービスが停止しているか、過負荷になっていることです。たとえば、Contour にリクエストが集中し、それ以上のリクエストを処理できなくなると、「503 - サービスは利用できません」が返されることがあります。これは、計算リソースの不足や、メモリーリークなどの内部バグが原因で発生する場合があります。
このエラーは「502 - 不正なゲートウェイ」に似ていますが、ゲートウェイサーバーが適切なリクエストを送信したにもかかわらず、上流サーバーから時間内にレスポンスを受信できなかった点が異なります。ネットワーク接続の問題、サーバーの停止、サーバーの過負荷など、さまざまな理由で発生することがあります。504エラーが発生した場合、通常はアクセスしようとしている Web サイトや Web アプリケーションが一時的に利用できないことを意味します。通常、端末やインターネット接続の問題ではありません。