2

我想知道当有人请求像http://www.example.com/page-that-never-existed-nor-will-ever-exist之类的页面时,是否有比 404 更好的选择(“永远”意味着可预见的未来但出于所有意图和目的:永远不会)。

例如,我收到一些“聪明”爬虫认为可能存在的页面请求,这些页面基于他们在网站或网络其他地方遇到的结构。它们不是拼写错误,而是要求我知道无处可去

我不想使用301 Moved Permanently,因为什么都没有移动,也没有逻辑的目的地可以移动。我不想使用410 Gone,因为它一开始就没有。

我还想要更合适的东西,404 Not Found因为我真的很想传达“不存在”的信息:不仅仅是“找不到,发生了什么?谁知道?”。我如何告诉用户代理再次请求它是浪费我们的时间?

基于HTTP 1.1404 Not Found似乎是最正确的选择,因为定义以“或当没有其他响应适用时”结尾,但我对此并不完全满意。还有什么想法吗?

4

1 回答 1

1

你考虑过403 Forbidden吗?这听起来像是您可能正在寻找的内容,您可以在响应的正文中包含一条消息,告诉客户端该资源永远不会存在。

服务器理解请求,但拒绝执行。授权将无济于事,并且不应重复请求。如果请求方法不是 HEAD 并且服务器希望公开请求未完成的原因,它应该在实体中描述拒绝的原因。如果服务器不希望向客户端提供此信息,则可以使用状态代码 404(未找到)来代替。

于 2013-01-08T16:27:23.913 回答