Http 标头 304 和缓存?

Http 标头 304 和缓存?

我们公司使用这些设置(不要问我为什么) - 对于每个请求,他们都希望从服务器发出新请求。这是一个仅使用 IE 的内部网系统。

他们将其定义为:

在此处输入图片描述

我们也有 Windows 身份NTLM验证iis7

我有 2 个问题。

Question #1)

当浏览器发出请求时(css):

(暂时保留 401 响应 - 这是 ntlm 的工作方式) 在此处输入图片描述

他正在使用if-modified-since标题来请求它。

他为什么要添加这个标题?我该如何配置它?为什么他不使用 IE 中的设置并每次都尝试下载它 - 正如我在第一张图片中所示?

Question #2)

响应 (ntlm 协商后) 是:

响应带有Not-modified304 标头。我认为这是因为我们发送了带有标头的请求if-modified-since

但有一个问题。

他实际上告诉我从我的缓存中下载。

我在 IE 设置中明确地告诉他 -不是从缓存中加载。

我在这里错过了什么吗?

多谢。

在此处输入图片描述

答案1

问题 1

他为什么要添加这个标题?

因为浏览器已经在缓存中拥有内容的副本。如果发生这种情况

1) 已经过了有效期

2)浏览器已配置为每次都检查更新版本

我该如何配置它?

对于 (1),你无能为力 - 这就是 HTTP 的工作方式。对于 (2),请将配置更改为选中“自动”

第二季度

但是我在 IE 设置中明确告诉他 - 不要从缓存中加载。

否 - 对浏览器的指令是查看对于较新的版本 - 如果请求的条件部分匹配,则 Web 服务器将仅返回新版本(带有 200 响应)。

答案2

您要求的设置是一个非常糟糕的想法。如果你真的实施了这项措施,所有东西的加载速度都会变慢。你连接的每个服务器都会变得非常慢。我不知道为什么要你这么做,但是你应该找出原因,这样你才能对真正的问题找到合理的解决方案。

另外,您根本无法使用 Internet Explorer 来做到这一点。它无法完全禁用缓存(Internet 临时文件)。

您可能会遇到一种情况,即漫游配置文件的用户拥有大量 IE 缓存,这些缓存最终会被复制到网络上。如果这是真正的问题,那么您可以告诉 IE 在退出时清空缓存. 至少就 IE 的缓存而言,将不再进行任何大型文件复制。

相关内容