Caching 缓存如何处理Netscalar响应

Caching 缓存如何处理Netscalar响应,caching,netscaler,Caching,Netscaler,在工作中,我们的站点位于NetScaler后面,NetScaler缓存响应。我正在努力理解这是如何工作的 因此,网站具有身份验证,如果您没有fed auth cookie,您将得到302响应以重定向到Oauth源。如果用户经过身份验证,则响应为200 NetScaler设置为缓存200s响应,而不是302s响应 我的问题是,当我发出请求时,因为服务器正在确定200或302,NetScaler如何知道在不返回服务器的情况下返回缓存响应 对缓存的简单理解会让我得出这样的结论:所有请求都将返回200响

在工作中,我们的站点位于NetScaler后面,NetScaler缓存响应。我正在努力理解这是如何工作的

因此,网站具有身份验证,如果您没有fed auth cookie,您将得到302响应以重定向到Oauth源。如果用户经过身份验证,则响应为200

NetScaler设置为缓存200s响应,而不是302s响应

我的问题是,当我发出请求时,因为服务器正在确定200或302,NetScaler如何知道在不返回服务器的情况下返回缓存响应

对缓存的简单理解会让我得出这样的结论:所有请求都将返回200响应,而无需与服务器进行检查

但这不是我们所看到的。在手动测试中,站点按预期工作,用户按预期登录和注销。但是,当应用自动测试时,用户将获得200缓存响应。我之所以说它是缓存响应,是因为我们在报头中看到一个ETag和一个Via:NS缓存


如果有人能给我一个资源或简短的解释,以便我能更好地了解情况,我将不胜感激。

NetScaler的缓存行为完全由策略和RFC 2616兼容驱动。在缓存此类动态内容时,了解其中哪些部分是特定于用户的,这一点非常重要。任何可以被规范化的东西,例如,通过删除用户特定的信息,比如cookies,都可以被缓存。与集成缓存相比。HTTP头的重要性

Via:在验证NetScaler是否参与缓存时,这是最有用的标题

If Modified-Since:这是一个请求端头,客户端使用它来请求缓存(如NetScaler)提供完整对象(如果它自指定日期以来发生了更改)。在大多数情况下,在这里谈论静态对象时,这些对象不会发生更改,这将导致一个更小的HTTP 304响应,而不是修改更大的对象

我们需要看到等式的两面。Netscaler上的NSTRACE和在发出HTTP请求的客户端上运行的Fiddler

要从GUI获取跟踪,请使用诊断部分中的启动新跟踪选项。数据包大小为零。输出到PCAP,Wireshark安装在工作站上。已安装WINSCP或类似软件以下拉PCAP文件

SSH/CLI

您可以在管理IP上SSH/Putty连接到设备或虚拟设备吗

以root用户身份登录

显示缓存统计信息–详细信息 进入

在输出的下方,您将能够看到命中率是304还是非304。当客户端指示它们已经具有某个对象并且仅检查是否存在较新的副本时,在响应中发送HTTP报头代码304,而不是完整的较大响应

显示统计数据随时间的变化

显示缓存统计信息-详细信息-第3次| grep 304

查看所有缓存对象的步骤

显示缓存对象

左侧是定位器ID

深潜

显示缓存对象定位器

查看来自服务器的客户端响应

Netscaler将使用Etag头和Via进行响应,以告知缓存来自何处

希望这是正确的方向