リクエスト・接続・セッションをまたぐプロキシローテーション
アプリケーションの各リクエストに Connection: close を追加する前に、ローテーション型プロキシサービスが実際に何をローテーションするのかを確認してください。
同じゲートウェイを経由する 2 回目のリクエストが同じパブリック IP を使うことは正当です。サービスがローテーションにどの有効期間を使うのかを確認してください。
| ローテーションの単位 | 比較すべきもの |
|---|---|
| リクエスト | 次のアプリケーション操作と、そこで観測された出口 |
| 接続 | クライアントが互換性のある接続を再利用したか、別の接続を開いたか |
| プロバイダーのセッション | 文書化されたスティッキーセッションの入力とその有効期間 |
Connection: close はゲートウェイ共通の指示ではありません。CONNECT 内の HTTPS では、Web サイトへのリクエストヘッダーは宛先の TLS の中で流れます。外側のプロキシに、どのパブリック IP を割り当てるかは伝えません。HTTP/1.1 の接続固有の意味論も、すべての HTTP バージョンやトランスポートにそのまま持ち込めるわけではありません。
文書化された接続単位のサービスが新しい接続を必要とする場合は、クライアントが対応しているライフサイクル制御を使い、TCP/TLS の設定を繰り返すコストを見込んでください。ローテーションがプロバイダーのセッションに従う場合、再接続するとそのセッションと出口の両方が維持されることがあります。
リクエスト識別子、エンドポイント、関連するセッションキー、そして宛先側で観測された送信元を別々に記録してください。接続を閉じることは、そのライフサイクルイベントを示すだけです。次の操作に選ばれた出口は、サービスの実際のローテーション契約に照らして確認してください。