HTTP的请求头标签 If-Modified-Since与Last-Modified
参考文章:
https://blog.csdn.net/lhl1124281072/article/details/80067764
If-Modified-Since 和 If-Unmodified-Since区别简介:
https://www.cnblogs.com/memset/p/http_if_modified_since.html
1.基本定义
Last-Modified用于记录页面的最后修改时间。
If-Modified-Since比较资源的更新时间。
2.发送方向
Last-Modified 是由服务器发送给客户端的HTTP请求头标签。
If-Modified-Since 则是由客户端发送给服务器的HTTP请求头标签。
3.应用场景
首先,在浏览器第一次请求某一个URL时,服务器端的返回状态会是200,内容是你请求的资源,同时有一个Last-Modified的属性标记此文件在服务期端最后被修改的时间,格式类似这样:
Last-Modified: Fri, 12 May 2006 18:53:33 GMT
然后,当客户端第二次请求此URL时,根据 HTTP 协议的规定,浏览器会向服务器传送 If-Modified-Since 报头,询问该时间之后文件是否有被修改过:
If-Modified-Since: Fri, 12 May 2006 18:53:33 GMT
后面跟的时间是本地浏览器存储的文件修改时间。
所以发送If-Modified-Since之后有两种情况:
1.资源变化,时间不一致,就返回HTTP状态码200和新的文件内容,返回最新更新时间Last-Modified,下次客户端就可以继续发送If-Modified-Since进行比较资源的更新时间,客户端接到之后,会丢弃旧文件,把新文件缓存起来,并显示到浏览器中。
2.如果服务器端的资源没有变化,则时间一致,自动返回HTTP状态码304(Not Changed.)状态码,内容为空,客户端接到之后,就直接把本地缓存文件显示到浏览器中,这样就节省了传输数据量。
还没有评论,来说两句吧...