Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

OPTIONS 也不吃 Cache-Control

  订正:Access-Control-Max-Age 来缓存 CORS 配置

  Cache-Control 是目前的 Web 中最流行的缓存方式之一了。它之所以如此流行,很大一部分应该归因于 GET 方法的流行。在浏览器地址栏输入网址默认是发起 GET 请求,所以 GET 方法才会如此流行。而只有 GETHEAD 方法才对 Cache-Control,所以所以。
  考虑到现代浏览器在一些情况下会先发起 OPTIONS 请求去判断目标服务器是否支持一些特性,所以我本想给 OPTIONS 设置 Cache-Control 来解决这个问题。但做了一些测试后发现,OPTIONS 并不买 Cache-Control 的账,所以 OPTIONS 带来的性能问题是无法通过 Cache-Control 解决的。 //nodejs
require("http").createServer(function(req,res){
  res.setHeader("Content-Type","text/html");
  if(req.url=="/test.html")
    //加载测试页面
    return require("fs").readFile("test.html",function(err,dat){
      res.end(dat);
    });
  else {
    //测试请求
    console.log(req.method+" "+req.url);
    res.setHeader("Cache-Control","private, max-age=86400");
    res.end(req.method+" "+req.url);
  };
}).listen(1234);
<!--test.html-->
<script>
document.onclick=function(e){
  e=e.target;
  if(e.tagName!="BUTTON")return;
  var xhr=new XMLHttpRequest;
  xhr.open(e.textContent,"/");
  xhr.send();
};
</script>
<button>GET</button>
<button>POST</button>
<button>PUT</button>
<button>DELETE</button>
<button>HEAD</button>
<button>OPTIONS</button>
  对页面上每个按钮点击两次,得到这个结果:

  只有 GETHEAD 会缓存,OPTIONS 同其它非安全幂等方法一样不缓存。
  至此我突然顿悟,完美 RESTful 就和中国梦一样,只是个梦啊。。
网名:
54.144.24.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^