私はすでにこのテーマをたくさんグーグルで検索し、このヘッダー、Herokuでの使用、およびDjangoに基づくプロジェクトに関するさまざまな記事を読みました。
しかし、それでも頭の中で混乱しています。
- このヘッダーの目的は何ですか?
- ユーザーのプライバシーを侵害していませんか?
- ユーザーの追跡に役立ちますか?
私はすでにこのテーマをたくさんグーグルで検索し、このヘッダー、Herokuでの使用、およびDjangoに基づくプロジェクトに関するさまざまな記事を読みました。
しかし、それでも頭の中で混乱しています。
回答:
クライアントがアクセスするWebサービスを操作している場合、要求(クライアントが表示できる)とサーバーログ(サーバーが表示できる)を関連付けることが難しい場合があります。
の考え方は、X-Request-ID
クライアントがランダムなIDを作成し、それをサーバーに渡すことができるということです。次に、サーバーは、作成するすべてのログステートメントにそのIDを含めます。クライアントがエラーを受け取った場合、バグレポートにIDを含めることができるため、サーバーオペレーターは、対応するログステートメントを検索できます(タイムスタンプやIPなどに依存する必要はありません)。
このIDはクライアントによって(ランダムに)生成されるため、機密情報は含まれていません。したがって、ユーザーのプライバシーを侵害することはありません。リクエストごとに一意のIDが作成されるため、ユーザーの追跡にも役立ちません。
目的:べき等
IDはリクエストごとに変更されますが、リクエストが再試行されても同じままであるため、受信者はリクエストが複数回処理されないようにすることができます。
これはいくつかのAPIプロバイダーからの引用です:
すべてのPOST、PUT、およびPATCH HTTPリクエストには、再試行の場合にべき等メッセージ処理を保証するために使用される一意のX-Request-Idヘッダーが含まれている必要があります
あなたがいる場合、それリクエストごとに固有のランダムな文字列、作る、それはあなたのプライバシーを侵害する、また追跡を有効にしません。
べき等が提供するものについて詳しく知りたい場合は、この洞察に満ちた記事をお読みください。
注意StefanKöglがコメントしているように、このヘッダーは標準化されていません。したがって、(非推奨の)「X-」プレフィックスです。
あなたのインターネットは(いつものように)再生しているので、あなたはテルストラに電話し、あなたは永遠に電話を待っています......最後にあなたはあきらめて、欲求不満で電話をバタンと閉めます。(これは失敗した通話です。Tellstraの通話ログにその記録があります。)
「それだけです、私はオンブズマンと呼んでいます!」
しかし、Ombudsmanには何千もの通話記録があります(Tellstraのすべての失敗したクエリ)。テルストラに電話をかけ、電話が失敗したことを伝えた場合、それだけでは不十分です。オンブズマンは、テルストラのすべての通話記録から、どれがあなたのものであるかをどのように知るのでしょうか。 ?
そこでX-Request-IDが登場します。Tellstraを呼び出すときは常に、乱数(X-Request-ID)を渡し、これがTellstraレコードに記録されます。そうすれば、オンブズマン(すべてのレコードにアクセスできる)が着信を見つけて、何が悪かったのかを見つけることができます。
同じことがhttpリクエストにも当てはまります。これは、クライアントがエラーや大きなレポートを発行したときに何がうまくいかなかったかを(バックエンド開発者として)見つけるのに役立つIDです。
それがその基本的な要約です。質問等はコメントを投稿するだけでクリアしたいです。