Web 表单:Return 没有找到分页 url 的结果的 http 状态?

Web forms: Return http status for no result found for paginated url?

我们有一个分页 URL 比如:

example.aspx/?pn=1
example.aspx/?pn=2
example.aspx/?pn=3
...

等等。

这是 URL 产品列表的 Web 表单 URL。当我们没有该请求的任何产品时,应该 return 将什么返回给浏览器?

我们是否应该 return 返回:

1. Response.StatusCode = 400; //Bad request
   Response.End();

 2. Response.StatusCode = 204; //No Content
    Response.End();

我们应该在这里使用 Respose.End() 吗?通知 client/crawlers 我们在此页面上没有内容的正确方法是什么。

让我们假设产品被 return 编辑为一个 JSON 数组,那么明显的响应是 200 和一个空数组。

返回 404 response 资源不存在,这相当于说甚至不可能为该特定用户请求产品。但实际上,成功return商品列表是有可能的,只是商品列表为空而已。这与在这种情况下使用不存在的 ID 检索一个特定产品完全相反 404 是正确的。

虽然 204 它至少告诉您的用户请求成功并且没有内容。换句话说,资源 DOES 存在,但由于某种原因,服务器选择不将其包含在其正文中。

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