Hei*_*cht 5 browser http http-status-code-404
一个奇怪的网页横亘在我面前。(作为一名开发人员,我必须解开这个谜团。)
在任何浏览器中访问网页时,一切似乎都很正常。网页按预期显示。
但是当查看控制台时,服务器实际上返回了 404 状态代码:
那么浏览器为什么要渲染页面呢?
查看正文显示返回了有效的 HTML:
坚持,稍等。响应 404 并一路发送 HTML?浏览器渲染它?
为什么会发生这种情况?这是服务器配置错误吗?还是这里发生了一些我不明白的聪明事情?故意将服务器配置为这样的行为是否有实际原因?
Stack Overflow 上的另一个答案包含一些有趣的信息:规范实际上建议使用 404 的 HTTP 状态代码加上 HTML 响应正文。
4xx 类状态代码适用于
客户端似乎犯了错误的情况。除非响应 HEAD
请求,服务器应该包含一个表示,其中包含
错误情况的解释,以及它是临时的还是
永久的情况。这些状态代码适用于任何
请求方法。
用户代理应该向用户显示任何包含的表示。
这给我留下了两种可能的解释:
解释1:这是服务器错误。
解释2:这是故意的,目的是为了击败爬虫和页面观察者。
如果您不希望页面被索引,那么第二个确实会很聪明。