http 条件请求

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了http 条件请求相关的知识,希望对你有一定的参考价值。

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
      断点续传,如果响应的数据未改变,服务器发送客户端丢失的部分,否则发送整个数据。

以上是关于http 条件请求的主要内容,如果未能解决你的问题,请参考以下文章

HTTP首部(请求头,响应头)

《图解 HTTP 》阅读 —— 第四章

HTTP状态码

Qt 网络请求的条件变量

限制 HTTP 的请求方法

如何获取HTTP请求响应问号