Web表单:返回http状态,找不到分页网址的结果?

时间:2017-09-04 15:27:13

标签: asp.net http webforms response http-status-codes

我们有一个分页网址,如:

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()吗?通知客户/抓取工具我们在此页面上没有内容的正确方法是什么。

1 个答案:

答案 0 :(得分:2)

让我们假设产品作为JSON数组返回,因此对于那个产品来说,显而易见的反应是带有空数组的200。

返回资源不存在的404 response,有点说甚至不可能为此特定用户询问产品。但实际上,成功返回产品列表是可能的,只是产品列表是空的。这与使用在404正确的情况下不存在的ID检索某个特定产品形成对比。

使用204时,它至少会告诉您的用户请求已成功且没有内容。在其他方面,资源DOES存在但由于某种原因,但服务器选择不将其包含在其正文中。

204也可以用作对POST请求的响应,其中某些操作由服务器执行,而不必创建任何新资源(这意味着201 CREATED),或者由于某些其他原因与返回任何资源无关的原因。