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