当有人请求像http://www.example.com/page-that-never-existed-nor-will-ever-exist这样的页面时,我想知道是否有比404更好的选择(“永远”意味着在可预见的未来,但是出于所有意图和目的:永远不会)。
例如,根据他们在网站或网站上其他地方遇到的结构,我收到一些“聪明”爬虫认为可能存在的页面请求。它们不是拼写错误,而是要求我知道无处可去
我不想使用301 Moved Permanently
,因为没有任何移动,也没有可移动的逻辑目的地。
我不想使用410 Gone
,因为它从来就不存在。
我也想要比404 Not Found
更合适的东西,因为我真的想传达“不存在”的信息:不仅仅是“未找到,发生了什么?谁知道?”。如何告诉用户代理我们再次要求它浪费我们的时间?
基于HTTP 1.1,404 Not Found
似乎是最正确的选项,因为定义以“或当没有其他响应适用”结束时,但我对此并不完全满意。还有其他想法吗?
答案 0 :(得分:1)
你有没有考虑过403 Forbidden?这听起来像你可能正在寻找的东西,你可以在响应的主体中包含一条消息,告诉客户端资源永远不会存在。
服务器理解请求,但拒绝履行请求。 授权无效,请求不应重复。如果 请求方法不是HEAD,服务器希望公开 为什么请求没有得到满足,它应该描述原因 因为该实体的拒绝。如果服务器不想做 此信息可供客户使用,状态代码404(不是 找到了)可以代替使用。