我搜索了很多,但找不到这个问题的好的答案。
作为 HATEOAS 爱好者,我认为这个标题非常适合:
Range: item=1-20/100
在HTTP规范中,我不明白一些“矛盾”:
范围单位可以接受“其他范围单位”...
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 的设计目的是允许应用程序不依赖范围,那么依赖它作为 API 的真正缺点是什么?
注意:我不关心“可浏览性”。
这是我从这个问题中轻轻借用的答案,感谢@ptidel https://twitter.com/Ptidel: 内容范围标头 - 允许的单位? https://stackoverflow.com/questions/9480193/content-range-header-allowed-units.
首先,本草案提出了自定义单位HTTP/1.1,第 5 部分:范围请求和部分响应 http://greenbytes.de/tech/webdav/draft-ietf-httpbis-p5-range-18.html#range.units
其次,有一个微妙的区别,第一个语句是为了解析目的而做出的
range-unit = bytes-unit | other-range-unit
bytes-unit = "bytes"
other-range-unit = token
第二条语句是用来产生 HTTP 请求的。
最后,来自费伦茨·米哈利 https://stackoverflow.com/users/981240/ferenc-mihaly完美总结了情况:
当我发送[自定义范围单位]时,我遵守 HTTP 规范,而当他们忽略它时,我遵守 HTTP 规范
在我看来,WebDAV 正确使用 HTTP 扩展,但正是由于这个原因,它很少在 Internet 上工作
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)