HTTP 402 Payment Required(エイチティーティーピーフォーハンドレッドツーペイメントリクワイアード)とは | 意味や読み方など丁寧でわかりやすい用語解説
HTTP 402 Payment Required(エイチティーティーピーフォーハンドレッドツーペイメントリクワイアード)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。
読み方
日本語表記
HTTP 402 ペイメント・リクワイアード (エイチティーティーピーヨンマルニペイメントリクワイアード)
英語表記
HTTP 402 Payment Required (エイチティーティーピー ヨンマルニ ペイメント リクワイヤード)
用語解説
HTTP 402 Payment Required は、Hypertext Transfer Protocol(HTTP)におけるステータスコードの一つであり、クライアントエラーを示す4xx系のコードに分類される。このコードは、リクエストは正しかったものの、そのリクエストを完了するためにクライアント側からの支払いが必要であることをサーバーが示している。現時点では一般的なWebサービスで広く利用されているわけではないが、将来的なWebの課金モデルの多様化に備えて予約されているステータスコードである。
HTTPステータスコードは、Webサーバーがクライアントからのリクエストに対してどのような結果を返したかを示す3桁の数字である。最初の桁は応答のカテゴリを示し、1xxは情報、2xxは成功、3xxはリダイレクト、4xxはクライアントエラー、5xxはサーバーエラーを意味する。402 Payment Requiredは4xx系に属するため、リクエスト自体に構文上の誤りはないが、クライアント側の問題によってサーバーが処理を拒否している状況を表す。具体的には、サーバーはリクエストされたアクションを実行するために、クライアントが何らかの料金を支払う必要があると判断した。
このステータスコードは、元々はデジタルキャッシュやマイクロペイメント(ごく少額の支払い)システムのために考案されたが、その具体的な利用は今日のWebサービスでは稀である。多くのWebサービスやAPIでは、課金モデルとしてアカウント登録に基づくサブスクリプションや、APIキーに関連付けられた利用制限、あるいは広告モデルを採用しているため、個々のHTTPリクエストごとに直接的な支払いを要求するケースが少ないためだ。もし支払いが失敗した場合でも、通常は認証失敗(401 Unauthorized)やアクセス拒否(403 Forbidden)などの別のステータスコードが返されるか、あるいはサービス固有のエラーメッセージが返されることが多い。
しかし、このコードは将来的なWebサービスの発展を見越して予約されている。例えば、ブロックチェーン技術を利用した分散型アプリケーション(dApps)におけるマイクロペイメント、または特定のAPI呼び出しごとに課金されるサービスなど、より柔軟で粒度の細かい課金システムが普及する可能性を秘めている。このようなシナリオでは、クライアントがリソースにアクセスしようとした際に、必要な支払いが行われていない場合にサーバーが402 Payment Requiredを返すことで、支払いを促すことができる。サーバーは通常、このレスポンスのボディ部分に、必要な支払いに関する詳細情報や、支払いを行うための指示、あるいは支払いページへのリンクなどを含めることが期待される。これにより、クライアントは適切なアクションを取って支払いを完了させ、再度リクエストを試みることが可能となる。
402 Payment Requiredは、401 Unauthorizedや403 Forbiddenとは明確に区別される。401 Unauthorizedは、クライアントが認証情報(IDやパスワードなど)を提供していないか、提供された認証情報が無効であることを示す。一方、403 Forbiddenは、クライアントが認証されているにもかかわらず、リクエストされたリソースへのアクセス権限がないことを示す。これらに対し、402は認証や権限の問題ではなく、純粋に「支払い」が不足していることに焦点を当てている。つまり、支払いが完了すれば、他の問題がなければリクエストは成功する可能性があることを示唆している。
システムを設計する際には、もし将来的にこの402コードを利用する可能性があるならば、クライアントとサーバー間のインターフェースを慎重に定義する必要がある。クライアント側では、402を受け取った際にユーザーに支払いを促すための適切なUI/UXを提供し、支払いが完了した後にリクエストを再試行するロジックを実装する必要がある。サーバー側では、どのような支払い方法を受け入れるのか、どのような形式で支払い情報をレスポンスボディに含めるのか、支払いが確認された後にどのようにリクエストを処理するのか、といった具体的なポリシーを定めることになるだろう。このように、HTTP 402 Payment Requiredは、現時点ではその利用が限定的であるものの、Webの未来における新たな課金モデルの可能性を示唆する、重要なステータスコードの一つとして認識されている。