话接上回If-Modified-Since,当squid开启reload_into_ims on之后,no-cache头会在在浏览器上被转化成If-Modified-Since标识返回给web服务器。
从整体架构考虑,因为squid上已经破坏了http协议的规定,那么web端就必须主动承担对网页过期的识别管理工作。
要是所有的网站都能从一规划开始就这么搞,俺们干CDN的可就轻松了~~~
下面是一段php代码,简单的实现对If-Modified-Since标签的过期管理:
这做一个范例,如果用其他的标签定义来控制过期,照葫芦画瓢就行了。比如用Expires控制,就写:
header('Expires: ' . gmdate ("D, d M Y H:i:s", gmmktime() + 60*5). " GMT");
题外话一句,php中关于date的函数很多,各种的格式不同,小心使用。好比这个新浪博客,就有一个小问题,如果你半夜写博客,过了零点以后发表,会提示错误;甚至如果你原先是10点发表的,隔了几天半月的哪天下午14点来修改保存,也会提示错误。非得要你改成当前分钟之前才可以。