核心问题是关于使用HTTP头,包括Range,If-Range,Accept-Ranges和用户定义的范围说明符。使用带范围说明符而不是字节的HTTP范围标题?
这里是一个制造的例子来帮助说明我的问题。假设我有一个Web 2.0风格的应用程序,它显示某种人类可读的文档。这些文件编辑分成多个页面(类似于您在新闻网站上看到的文章)。对于这个例子,假设:
- 有一个标题为“HTTP范围问题”的文档分成三页。
- shell页面(
/document/shell/http-range-question
)知道关于文档的元信息,包括页面的数量。 - 文档的第一个可读页面在页面onload事件期间通过ajax GET加载并插入页面。
- 看起来像[1 2 3所有]的UI控件位于页面底部,单击某个数字将显示该可读页面(也通过ajax加载),然后单击“全部”将显示整个文件。假定这些URL的1,2,3和所有的用例:
/document/content/http-range-question?page=1
/document/content/http-range-question?page=2
/document/content/http-range-question?page=3
/document/content/http-range-question
我们的问题。我可以使用HTTP范围标头而不是URL的一部分(例如查询字符串参数)吗?也许是这样的GET /document/content/http-range-question
要求:
Range: page=1
它看起来像规范只定义字节范围为可以容许的,所以即使我做了我的Ajax调用与我的浏览器和服务器代码的工作,中间什么事情都可能打破合同(如缓存代理服务器)。
Range: bytes=0-499
自定义范围说明符的任何意见或现实世界的例子?
更新:我没有找到有关范围的报头(Paging in a Rest Collection),他们提到,Dojo的JsonRestStore使用自定义的范围标头值过类似的问题。
Range: items=0-24
[Paging in Rest Collection]的可能重复(http://stackoverflow.com/questions/924472/paging-in-a-rest-collection) – DanMan 2015-09-20 09:44:23
@DanMan - 我已经链接到类似的问题,但并非所有的HTTP都是REST,这会问一个关于允许值的问题,而不是REST语义。此外,不同的问题标题措辞有助于不同的人找到他们的答案。 – 2015-09-20 22:18:19