HTTP Cookieの永続性が構成されている場合、Citrix ADCアプライアンスは最初のクライアント要求のHTTPヘッダーにCookieを設定します。Cookie には、負荷分散アルゴリズムによって選択されたサービスの IP アドレスとポートが含まれます。任意の HTTP 接続と同様に、クライアントはそのクッキーを後続のリクエストに含めます。
Citrix ADCアプライアンスはクッキーを検出すると、クッキーのサービスIPとポートに要求を転送し、接続の永続性を維持します。このタイプの永続性は、HTTP または HTTPS タイプの仮想サーバーで使用できます。このパーシステンスタイプはアプライアンスリソースを消費しないため、永続的なクライアントの数に制限はありません。
注:クライアントの Web ブラウザが Cookie を拒否するように構成されている場合、HTTP Cookie ベースの永続性は機能しません。ウェブサイトでクッキーチェックを設定し、クッキーを適切に保存していないように見えるクライアントに、ウェブサイトで使用する場合は Cookie を有効にする必要があることを警告することをお勧めします。
Citrix ADCアプライアンスが挿入するクッキーの形式は次のとおりです。
NSC_XXXX=<ServiceIP ><ServicePort>
各項目の意味は次のとおりです:
このタイプの永続性のタイムアウト値を設定して、セッションの非アクティブ期間を指定できます。指定された期間接続がアクティブでない場合、Citrix ADCアプライアンスは永続セッションを破棄します。同じクライアントからの後続の接続では、設定された負荷分散方式に基づいて新しいサーバが選択され、新しい永続セッションが確立されます。
注:タイムアウト値を0に設定すると、Citrix ADCアプライアンスは有効期限を指定しませんが、クライアントのブラウザーのシャットダウン時に保存されないセッションCookieを設定します。
デフォルトでは、クライアントブラウザとの互換性を最大限に高めるために、Citrix ADCアプライアンスはHTTPバージョン0のCookieを設定します。(特定の HTTP プロキシのみがバージョン 1 の Cookie を理解します。最も一般的に使用されるブラウザでは理解しません)。 RFC2109 に準拠するために、HTTP バージョン 1 のクッキーを設定するようにアプライアンスを設定できます。HTTPバージョン0のクッキーの場合、アプライアンスはクッキーの有効期限日時を絶対世界協定時刻(GMT)として挿入します。この値は、アプライアンスの現在の GMT 時間とタイムアウト値の合計として計算されます。HTTPバージョン1のクッキーの場合、アプライアンスはHTTPクッキーの「最大経過時間」属性を設定することにより、相対的な有効期限を挿入します。この場合、クライアントのブラウザは実際の有効期限を計算します。
HTTP Cookie では、アプライアンスはデフォルトで Cookie がスクリプト不能であり、クライアントアプリケーションに公開してはならないことを示すHTTPOnlyフラグを設定します。したがって、クライアント側のスクリプトは Cookie にアクセスできず、クライアントはクロスサイトスクリプティングの影響を受けません。
ただし、一部のブラウザはHTTPOnlyフラグをサポートしていないため、Cookie を返さない場合があります。その結果、永続性が壊れます。このフラグをサポートしていないブラウザでは、永続性CookieのHTTPOnlyフラグを省略できます。