我们有一个分页网址,如:
example.aspx/?pn=1
example.aspx/?pn=2
example.aspx/?pn=3
...
等等。
这是返回产品列表的网络表单网址。当我们没有针对该请求的任何产品时,应该将哪些内容返回给浏览器?
我们应该像以下一样回来:
1. Response.StatusCode = 400; //Bad request
Response.End();
2. Response.StatusCode = 204; //No Content
Response.End();
我们应该在这里使用Respose.End()吗?通知客户/抓取工具我们在此页面上没有内容的正确方法是什么。
答案 0 :(得分:2)
让我们假设产品作为JSON数组返回,因此对于那个产品来说,显而易见的反应是带有空数组的200。
返回资源不存在的404 response
,有点说甚至不可能为此特定用户询问产品。但实际上,成功返回产品列表是可能的,只是产品列表是空的。这与使用在404
正确的情况下不存在的ID检索某个特定产品形成对比。
使用204
时,它至少会告诉您的用户请求已成功且没有内容。在其他方面,资源DOES
存在但由于某种原因,但服务器选择不将其包含在其正文中。
204
也可以用作对POST
请求的响应,其中某些操作由服务器执行,而不必创建任何新资源(这意味着201
CREATED
),或者由于某些其他原因与返回任何资源无关的原因。