为什么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>