4.12 If-Range

作者:肖鹏-SpiritLing 时间:2018-11-24

If-Range 字段值若是更 ETge 值或更新日期时间一致,那么就作为范围请求处理。若不一致,则忽略范围请求,返回全部资源。

首部字段 If-Range 属于附带条件之一。它告知服务器若指定 If-Range 字段值(与 ETge 值或者时间)和请求资源的 ETge 值或时间相一致时,则作为范围请求处理。反之,则返回全体资源。


如果不使用 If-Range 时,则需要进行两次请求
Created with Raphaël 2.2.0客户端客户端服务器服务器GET: /If-Match: "123456"Range: 5001-10000412 Precondition Failed(你请求的资源已经没有了,重新发送请求)GET: /200 OKETge: "54234"

服务器端的资源如果更新,那客户端持有资源中的一部分也会随之无效,当然,范围请求作为前提也是无效的。这时,服务器会暂且以状态码 412 Precondition Failed 作为响应返回,其目的是催促客户端再次发送请求。这样一来,与使用首部字段 If-Range 比起来,就需要花费两倍功夫。

作者:肖鹏-SpiritLing 时间:2018-11-24

原文: http://http.kancloud.spiritling.cn/851903