2017-05-31 32 views
0

一个奇怪的网页横过我的路。 (作为一名开发人员,我必须解开这个谜团。)服务器为网页返回404,但页面在浏览器中显示正常 - 为什么?

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

但在控制台看当服务器acually返回404个状态码:

enter image description here

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

纵观车身显示返回的HTML标签:

enter image description here

等一下。响应404并一路发送HTML?浏览器渲染它?

这是怎么发生的?这是一些服务器配置错误吗?或者是在我不明白的地方发生了什么?故意配置服务器的行为是否有实际的理由?

回答

0

Another answer on Stack Overflow包含一些有趣的信息:spec实际推荐HTTP状态码404加HTML响应体。

的4XX类的状态代码是用于在其中
客户端似乎有错误的案件。响应一个HEAD
请求时除外,服务器应该包括含有表示的错误情况一个
解释,以及它是否是一个临时或
永久状态。这些状态代码适用于任何
请求方法。用户代理应该向用户显示任何包含的
表示。

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

说明1:这是一个服务器错误。

  • 服务器错误返回404个状态码
  • 浏览器认为该响应主体包含有关错误的详细信息,并显示它 - 对于最终用户,这是实际的页面

解释2:它是为了击败爬虫和页面观察者而完成的。

  • 在服务器上的目的,返回404 - 因为他们把它解释为错误
  • 浏览器不受影响非浏览器的用户代理不会处理结果,最终用户不只要关心的页面正在显示

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

相关问题