问题背景
HTTP协议中GET请求方法中的请求头内容 : If-Modified-Since
具体描述
HTTP请求头的IMS(If-Modified-Since):浏览器缓存记录的该文件的最后服务器修改时间。
浏览器发送HTTP请求时,把If-Modified-Since一起发到服务器去,服务器会把这个时间与服务器上实际文件的最后修改时间进行比较。
如果时间一致,那么返回HTTP状态码304(Not Modified),客户端接到之后,直接把本地缓存文件显示到浏览器中。
如果时间不一致,就返回HTTP状态码200和新的文件内容,客户端接到之后,会丢弃旧文件,把新文件缓存起来,并显示到浏览器中。
浏览器第一次访问服务器的文件时。不会携带If-Modified-Since,因为未有本地缓存。
服务器收到请求,开始处理。响应2000,http头有标签:Last-Modified(date),即服务器本地记录的文件最后修改时间。
浏览器收到响应,缓存到本地。
浏览器第二次请求时,携带If-Modified-Since(date),
服务器比较If-Modified-Since(date),是否与服务器本地记录相同。决定返回状态200还是304.