If-Modified-Since(IMS)是标准的HTTP请求头标签,在发送HTTP请求时,把浏览器端缓存页面的最后修改时间一起发到服务器去,服务器会把这个时间与服务器上实际文件的最后修改时间进行比较。

如果时间一致,那么返回HTTP状态码304(不返回文件内容),客户端接到之后,就直接把本地缓存文件显示到浏览器中。如果时间不一致,就返回HTTP状态码200和新的文件内容,客户端接到之后,会丢弃旧文件,把新文件缓存起来,并显示到浏览器中。



1.首先在服务器创建一个简单的HTML文件,用浏览器访问一下,成功表示HTML页面。

> 因为是第一次访问该页面,客户端发请求时,请求头中没有If-Modified-Since标签。

> 服务器返回的HTTP状态码是200,并发送页面的全部内容。

> 服务器返回的HTTP头标签中有Last-Modified,告诉客户端页面的最后修改时间。  

wKioL1MnqyOyD5ipAALVDECX46k763.jpg


2.在浏览器中刷新一下页面(F5).
 (1)客户端发HTTP请求时,使用If-Modified-Since标签,把上次服务器告诉它的文件最后修改时间返回到服务器端了。
 (2)因为文件没有改动过,所以服务器返回的HTTP状态码是304,没有发送页面的内容。

wKioL1Mnq82SK9VdAALIvaR3Rpk738.jpg

3.用文本编辑器稍微改动一下页面文件,保存。再用浏览器访问一下。
 (1)客户端发HTTP请求时,使用If-Modified-Since标签,把上次服务器告诉它的文件最后修改时间返回到服务器端了。
 (2)因为文件被改动过,两边时间不一致,所以服务器返回的HTTP状态码是200,并发送新页面的全部内容。
 (3)服务器返回的HTTP头标签中有Last-Modified,告诉客户端页面的新的最后修改时间。


wKiom1MnrLyDKcU3AALEWt0KacM241.jpg