我有一个html页面,并添加一些这样的元标记:
<meta http-equiv="Cache-Control" Content="public" />
<meta http-equiv="Expires" Content="Mon, 08 Jun 2013 03:37:26 GMT" />
我的服务器是tomcat,在客户端浏览器中缓存此HTML页面之后,我关闭了我的tomcat。
然后我尝试在不同的浏览器中访问此HTML页面。
IE可以成功访问此页面,但Chrome失败。
然后我重新启动了我的tomcat,并在Chrome和IE中进行了测试。
我发现chrome仍然发送了返回304代码的请求,但是IE没有发送此请求。
那么如何在Chrome中避免此请求?
答案 0 :(得分:0)
其实我不认为这是一个错误。 3xx表示重定向。真正的错误是4xx(客户端错误)和5xx(服务器错误)。
如果客户获得304 Not Modified,那么客户有责任从自己的缓存中显示有问题的资源。通常,代理不应该担心这一点。这只是信使。
catch (WebException ex)
{
if (ex.Status == WebExceptionStatus.ProtocolError)
{
int statusCode = (int) ((HttpWebResponse) ex.Response).StatusCode;
listenerContext.Response.StatusCode = statusCode;
listenerContext.Response.StatusDescription = ex.Message;
log("WARNING", uri, "WebException/ProtocolError: " + ex.GetType() + " - " + ex.Message);
}
else
{
log("ERROR", uri, "WebException - " + ex.GetType() + " - " + ex.Message);
}
listenerContext.Response.Close();
}