【发布时间】:2012-02-29 18:01:33
【问题描述】:
好的 - 所以我正在测试一个 Web 应用程序,并且在我的开发框上遇到了一些我无法解决的奇怪行为。在同事的机器上没有表现出相同的行为。
问题如下:我正在向 index.aspx 发出两个请求。第一个请求以 HTTP 200 的形式返回(如我所料),但第二个请求是从浏览器缓存中检索的。我在每次测试开始时清除缓存以确保测试一致。我还使用了一个名为 HTTPWatch 的实用程序(很像提琴手,但即使请求是从浏览器缓存中检索到的也会显示请求),它向我显示 HTTP 信息,这就是我知道它来自缓存的方式。
这个问题只出现在我的一台机器上。
同事机器(工作正常)
- 请求被发送到 index.aspx
- 已发送标头:
- (请求行): GET /index.aspx HTTP/1.1
- 接受: text/html, application/xhtml+xml, /
- 接受编码: gzip、放气
- 接受语言: en-GB
- 连接:保持活动状态
- Cookie:(不相关)
- 主持人: 开发人员
- 用户代理: Mozilla/5.0(兼容;MSIE 9.0;Windows NT 6.1;WOW64;Trident/5.0)
- 收到的标头:
- (状态行): HTTP/1.1 200 OK
- 缓存控制:私有
- 内容长度: 10369
- 内容类型: text/html; charset=utf-8
- 日期: 2012 年 2 月 8 日星期三 09:09:38 GMT
- 服务器: Microsoft-IIS/7.5
- X-AspNet-版本: 2.0.50727
- X-Powered-By: ASP.NET
- 已发送标头:
- 第二个请求发送到 index.aspx
- 已发送标头:
- (请求行): GET /index.aspx HTTP/1.1
- 接受: text/html, application/xhtml+xml, /
- 接受编码: gzip、放气
- 接受语言: en-GB
- 连接:保持活动状态
- Cookie:(不相关)
- 主持人: 开发人员
- 推荐人: http://dev/index.aspx
- 用户代理: Mozilla/5.0(兼容;MSIE 9.0;Windows NT 6.1;WOW64;Trident/5.0)
- 收到的标头:
- (状态行): HTTP/1.1 200 OK
- 缓存控制:私有
- 内容长度: 33588
- 内容类型: text/html; charset=utf-8
- 日期: 2012 年 2 月 8 日星期三 09:09:38 GMT
- 服务器: Microsoft-IIS/7.5
- X-AspNet-版本: 2.0.50727
- X-Powered-By: ASP.NET
- 已发送标头:
我的机器(不工作)
- 请求被发送到 index.aspx
- 已发送标头:
- (请求行): GET /index.aspx HTTP/1.1
- 接受: application/x-ms-application、image/jpeg、application/xaml+xml、image/gif、image/pjpeg、application/x-ms-xbap、application/vnd.ms-excel , application/vnd.ms-powerpoint, application/msword, /
- 接受编码: gzip、放气
- 接受语言: en-GB
- 连接:保持活动状态
- Cookie:(不相关)
- 主持人: 开发人员
- 用户代理: Mozilla/4.0(兼容;MSIE 8.0;Windows NT 6.1;WOW64;Trident/4.0;SLCC2;.NET CLR 2.0.50727;.NET CLR 3.5.30729;.NET CLR 3.0 .30729;媒体中心 PC 6.0;.NET4.0C;.NET4.0E)
- 收到的标头:
- (状态行): HTTP/1.1 200 OK
- 缓存控制:私有
- 内容长度: 10374
- 内容类型: text/html; charset=utf-8
- 日期: 2012 年 2 月 8 日星期三 09:45:304GMT
- X-Powered-By: ASP.NET
- 已发送标头:
- 第二个请求发送到 index.aspx
- 已发送标头:
- (无):没有为缓存项目发送标头
- 收到的标头:
- (无):没有收到缓存项目的标头
- 已发送标头:
您可能已经注意到,浏览器是不同的(从 ie8 到 ie9),但我仍然不明白为什么会出现这样的问题。我认为它必须是一些浏览器配置,因为第一个请求收到的标头几乎相同。
如果有人能解释为什么从缓存中检索第二个请求,我将不胜感激。
【问题讨论】:
标签: internet-explorer caching browser http-headers cache-control