http的条件请求
if-modified-since/if-unmodified-since/if-none-match/if-match/if-range
- if-modified-since
是标准的HTTP请求头标签,在发送HTTP请求时,把浏览器端缓存页面的最后修改时间(last-modified)一起发到服务器去,服务器会把这个时间与服务器上实际文件的最后修改时间进行比较。
如果时间一致,那么返回HTTP状态码304(不返回文件内容),客户端接到之后,就直接把本地缓存文件显示到浏览器中。
如果时间不一致,就返回HTTP状态码200和新的文件内容,客户端接到之后,会丢弃旧文件,把新文件缓存起来,并显示到浏览器中。
- if-unmodified-since
在发送HTTP请求时,把浏览器端缓存页面的最后修改时间(last-modified)一起发到服务器去,服务器会把这个时间与服务器上实际文件的最后修改时间进行比较。
如果时间一致,就返回HTTP状态码200,开始传送文件
如果时间一致,则返回412 Precondition failed (预处理错误)
- if-none-match
在发送HTTP请求时,服务器先前发送的Etag,与服务器回应的Etag比较判断是否改变
如果Etag相同,则返回304
如果Etag不同,响应200,返回请求文件
- if-match
在发送HTTP请求时,服务器先前发送的Etag,与服务器回应的Etag比较判断是否改变
如果Etag相同,则响应200,返回请求文件
如果Etag不同,那么需要返回 416 (Range Not Satisfiable,范围请求无法满足)
- if-range
断点续传,如果响应的数据未改变,服务器发送客户端丢失的部分,否则发送整个数据。
时间: 2024-10-17 02:36:42