1

我正在实现一个 RESTful Web 服务器的逻辑,它支持使用类似 SolR 的语法进行搜索。以下是一些常见的有效请求:

  • “https://www.somewhere.com/fooResource/123”
  • “https://www.somewhere.com/fooResource/456”
  • “https://www.somewhere.com/fooResource?q=title:hi”
  • “https://www.somewhere.com/fooResource?q=title:hello&sort=foo”

我的问题很笼统;如果我收到这样的请求,我该怎么办?

  • “https://www.somewhere.com/fooResource?q=title:hi&something=foo”

我收到了一个对我没有意义的查询参数“something”,我们的搜索引擎将忽略它。我是不是该

  • 立即返回 4xx 状态码
  • 忽略它并返回 200 结果
  • 根据我的用例,要么我是“正确的”
4

2 回答 2

1

许多网页只是忽略了他们没有预料到的东西。

通常 URL 和参数是在浏览器或 Web 服务客户端上单击某些内容或运行某些代码的结果。这些很少会提交任何意想不到的东西。

如果出于某种原因,您希望有人欺骗您的网站并以某种方式提交“hackish”请求,您可能希望通过识别非法参数并返回一些错误来锁定它们。4xx 对于 REST 服务是合理的。

于 2013-01-17T23:53:40.543 回答
0

阅读 HTTP 状态定义。我会练习不返回任何带有错误信息的东西。400 的定义在The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the request without modifications.这里似乎是合适的,但您的用例可能不这样认为。

如果您忽略,您没有向客户提供任何信息。他们可能永远不知道出了什么问题。

于 2013-01-17T23:52:58.460 回答