服务器为网页返回404,但是页面在浏览器中显示正常-为什么?

人气:842 发布:2022-10-16 标签: http http-status-code-404 browser

问题描述

一个陌生的网页穿过我的路。(作为一名开发人员,我必须解开这个谜团。)

在任何浏览器中访问网页时,一切似乎都正常。网页按预期显示。

但在控制台中查看时,服务器会自动返回404状态代码:

那么为什么浏览器要呈现页面?

查看正文显示返回了有效的HTML:

等一下。响应404并在此过程中发送HTML吗?浏览器会呈现它??

为什么会发生这种情况?这是服务器配置错误吗?还是这里发生了什么我不明白的聪明事?故意将服务器配置为这样运行是否有实际原因?

Http

Another answer on Stack Overflow 包含一些有趣的信息:spec实际上推荐的推荐答案状态码为404plus Html Response Body。

4xx类状态代码适用于 客户似乎弄错了。回复头部时除外 请求时,服务器应包含包含 错误情况说明,是临时性的还是 永久条件。这些状态代码适用于任何 请求方法。用户代理应显示包含的任何 向用户呈现。

这给我留下了两种可能的解释:

解释1:服务器错误。

服务器错误返回404状态码 浏览器认为响应正文包含有关错误的详细信息,并将其显示出来-对于最终用户,这是实际的页面

解释2:这是为了击败爬网程序和页面查看程序。

服务器故意返回404-非浏览器用户代理不会处理结果,因为它们将其解释为错误 浏览器不受影响,只要页面正在显示,最终用户就不会在意

如果您不希望您的页面被索引,那么第二个确实会很聪明。

167