为什么Firefox没有完整实现HTTP协议

vary头是http1.1 引入的一种内容协商机制, 目的是影响缓存的key以便缓存同一url的不同版本. 

但是firefox却不能支持它 当服务器输出 vary 时, firefox在下一次请求的时候会抛弃if-modified-since头部
导致服务器重新响应200. 

不管是vary导致了firefox未能找到缓存项以读取lastmodify信息, 还是firefox对vary的解析有bug, 总之这个错误是 
发生了. 

让我们来测试一下:

 

<%@ Page Language="C#" Inherits="System.Web.UI.Page" %>

<script runat="server" language="C#">
    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);
        if (Request.Headers["If-Modified-Since"] != null) {
            Response.StatusCode = 304;
            return;
        }
        Response.AddHeader("Vary", "*");
        Response.AddHeader("Last-Modified", DateTime.Now.ToString("r"));
    }
</script>

 

 
 
 

 

posted on 2012-07-16 09:49  nsnail  阅读(1436)  评论(3编辑  收藏  举报

导航