前段时间写代码,header输出两个location的头。

 

我理所当然的以为第一个location之后,就已经跳转到另一个页面了。唉,无知真可怕啊!后来的结果是以第二个location为准!

 

程序输出了两个location,但是到客户端只有一个,中间有可能是php处理了多余的头,也有可能是服务器程序(apache、nginx)处理的。但是假如,假如服务器确确实实的给了他两个location,浏览器会怎么处理了。写了段测试代码,输出两个location的头,以及重复输出Cache-Control, Expires。浏览器产生的行为结果如下:

重复两条location头,ie,firefox,chromium 均无法工作,ubuntu下chromium提示收到重复location头,其它浏览器无提示

重复两条Cache-Control头,firefox, chromium 将两条头链接在一起:
Cache-Control: max-age=2592000, max-age=3592000,浏览器正常工作

重复两条Expires头,与cache-control一样