空集合和HTTP标头内容范围

空集合和HTTP标头内容范围,http,rest,pagination,http-headers,paging,Http,Rest,Pagination,Http Headers,Paging,我们如何在RESTful接口上处理带有标头的空集合 例如,有42条记录,请求范围:items=0-41将返回所有内容,响应头将是:内容范围:items 0-41/42 但是,当没有任何记录时,我们如何处理内容范围标题?谢谢你的帮助 编辑: 我的意思是,返回空集合时,服务器可能希望返回内容范围:项x-y/0,其中x和y是一个不同于0的值。但是哪一个呢?我认为这是一个棘手的问题,规范没有提到它。如果X-Y/0的数字不是零,那么服务器的响应无效(中断)。提交一个bug。实际上,服务器应该响应一个HTT

我们如何在RESTful接口上处理带有标头的空集合

例如,有42条记录,请求
范围:items=0-41
将返回所有内容,响应头将是:
内容范围:items 0-41/42

但是,当没有任何记录时,我们如何处理
内容范围
标题?谢谢你的帮助

编辑:


我的意思是,返回空集合时,服务器可能希望返回
内容范围:项x-y/0
,其中
x
y
是一个不同于0的值。但是哪一个呢?我认为这是一个棘手的问题,规范没有提到它。

如果X-Y/0的数字不是零,那么服务器的响应无效(中断)。提交一个bug。

实际上,服务器应该响应一个HTTP 416请求,该请求不可满足,内容范围:**/0

可以。那么,如果集合为空,服务器应该如何回答呢?拥有
内容范围:0-0/0
是不可能的,因为
0-0
意味着集合中有一条记录。没有内容,因此您不会返回内容范围标题。如果必须,规范允许您在以下情况下返回星号(“*”)(来自RFC):“生成响应时实例长度未知。”“没有内容,因此您不会返回内容范围标头。”,不确定这是否有意义。为什么要将空集合视为异常(没有范围标头,并且接受的答案显示416状态)?这在我看来毫无意义。空集合是正常的。没有理由把它当作一个奇怪的边缘案件。真的吗?当集合为空时,是否有完全不同的状态代码?我希望状态为200,结果是一个空数组<代码>内容范围:**/0还是有意义的。再仔细研究一下,我认为416状态是指当请求包含指定无效范围的
范围
标头时。但是,如果没有指定范围,您仍然希望应用默认范围。我个人认为416是非常不友好的,即使指定了一个范围。如果我请求
范围:0-99
我只想获得100个项目的第一个“页面”。谁在乎是否真的少了?我将阅读响应标题以了解这一点。但是如果它返回状态416,我们基本上会强制客户机首先单独请求结果的总数。这没有意义。我认为416是有意义的,如果范围的开始超出了界限。但是,强制客户机首先获取总数,以便他们可以调整范围的末尾,使其保持在总数之内,这会使您最终得到一个非常不直观(而且速度很慢)的API。