我搜索了很多,但是找不到一个好的答案来回答这个问题。作为一个HATEOAS爱好者,我认为这个头部信息非常适合:
Range: item=1-20/100
在HTTP规范中,我不太理解一些"矛盾之处":
范围单元可以接受"其他范围单元"...
范围单元可以接受“other-range-unit”这个参数,看起来支持自定义的范围单元,但是实际上只有在服务器端能正确处理自定义范围请求时才行。如果客户端使用了一个未被服务器支持的范围单元,服务器应该返回416状态码。
range-unit = bytes-unit | other-range-unit
bytes-unit = "bytes"
other-range-unit = token
然而规范后来明确说明:
HTTP/1.1 定义的唯一范围单位是“字节”。使用其他单位指定的范围,HTTP/1.1 实现可能会忽略掉。
最后规范以此声明结束:
HTTP/1.1 已经被设计成允许应用实现不依赖于范围知识的实现。
- 除了字节单位,还允许使用其他单位吗?
- 如果 HTTP/1.1 被设计成允许应用不依赖于范围知识,那么依赖范围知识有什么真正的缺点?
注:我不关心“可浏览性”。