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

2024-05-11

一个奇怪的网页横亘在我面前。 (作为一名开发人员,我必须解开这个谜团。)

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

但是当查看控制台时,服务器实际上返回了 404 状态代码:

那么浏览器为什么要渲染页面呢?

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

坚持,稍等。响应 404 并一路发送 HTML?浏览器渲染它?

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


Stack Overflow 上的另一个答案 https://stackoverflow.com/a/4940737/56658包含一些有趣的信息:404 的 HTTP 状态代码加上 HTML 响应正文实际上是由spec https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-p2-semantics-12#page-27.

4xx 类状态代码适用于以下情况:
客户似乎犯了错误。除非响应 HEAD
要求,服务器应该包含一个表示,其中包含
错误情况的解释
,以及无论是暂时的还是
永久状态。这些状态代码适用于任何
请求方法。用户代理应该显示任何包含的内容
向用户表示。

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

解释1:这是服务器错误。

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

解释2:这是故意的,目的是为了击败爬虫和页面观察者。

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

如果您不希望页面被索引,那么第二个确实是一种聪明的方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • 如何在纯 HTML 页面中返回特定的 HTTP 状态代码

    Google 建议当网站暂时不可用时返回 503 HTTP 响应 我有一些纯 HTML 网站 如何在纯 HTML 网站中返回 503 状态 我使用的是带有 Apache 的 Linux 机器 您必须在服务器上而不是在 HTML 文件中设置状
  • 如何在嵌入式 Jetty 中配置 ErrorPageErrorHandler?

    是否可以将 ErrorPageErrorHandler 配置为在未找到内容 服务时重定向到静态页面 这是我的代码 server new Server port Resource webRoot Resource newResource we
  • AddressAccessDeniedException :无需 netsh 即可解决它?

    我遇到了异常AddressAccessDeniedException因为我的processus没有注册URL的权限 我首先以管理员身份运行我的程序 好的 它成功了 但我现在想要分发我的应用程序 并且我希望每个用户都能够运行它 而不必成为管理
  • 如何使用 Node.js 和 Axios 将文件上传到 AWS 中的预签名 URL?

    我有下一个场景 通过 AWS SDK 生成用于文件上传的签名 URL 尝试使用axios 或request npm包上传本地文件 但每次我都会出错 Status 403状态文本 禁止
  • 通用开源 REST 客户端? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何在 Javascript 中打开新标签?

    我想在新选项卡中打开我网站的页面 我尝试使用 window open 函数 但似乎不再支持它 这些是我在本地尝试过的一些选项 url localhost 3000 my other page window open url blank OR
  • 如何将 POST 请求内容保存为 .NET 中的文件 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我有一个客户端应用程序POST请求a
  • Angular2 http.post 被执行两次

    我遇到一个奇怪的问题 Angular2 的 RC1 Http 服务执行 http post 调用两次 我已经调试了我的应用程序 并且我知道这不是点击事件问题 导致核心服务调用的所有调用 public create json Object p
  • 对于非文本媒体类型,发送带有 Content-Type 标头的字符集参数是否绝对错误?

    我发现了两个软件之间的错误 其中一个正在发出标头 Content Type application x bittorrent charset utf 8 另一个是错误地处理这个问题 但如果删除 charset 参数 则可以正确处理它 我需要
  • 从浏览器中删除cookie?

    有什么方法可以指示网络浏览器完全delete一个人的cookie是用PHP设置的吗 我不想expiry或者等待浏览器closed 对于删除 我的意思是实际上不再将其列在 cookie 列表中 尝试这样删除所有 cookie foreach
  • 在Java中解析包含multipart/form-data请求体的字符串

    问题陈述 我认为标题说明了一切 我正在寻找解析 a 的方法String包含 multipart form data HTTP 请求的正文部分 IE 字符串的内容看起来像这样 xyzseparator blah Content Disposi
  • org.apache.http 软件包在 API 级别 23 中被删除。替代方案是什么?

    在更新到最新的 android API 级别 23 Marshmallow 后 通过 build gradle 添加以下更改后 所有 org apache http 类都不起作用 android compileSdkVersion 23 b
  • 在 Flex 中以 HTTP Post 方式上传任意数据

    我们目前有一个 Java 小程序 可以生成大量数据并将其上传到我们的服务器 我们拥有的上传方法之一是使用 HTTP POST 到我们的服务器 其内容只是原始数据 没有多部分编码或任何内容 我正在考虑实现一个具有相同功能的 Flex 应用程序
  • HTTP 和 HTTPS iframe

    我正在创建一个小部件 我想允许其他人使用它 这iframe通过 HTTP 加载 但我想允许用户通过 HTTPS 登录 即通过 SSL 发送登录请求 同源策略中允许这样做吗 即 场景是用户可以将我的 JavaScript 集成到他们的网站 小
  • CSS 样式直到刷新才应用

    我有一个具有以下 CSS 样式的网页 该样式覆盖了一些更高级别的样式 pnlActions background image webkit gradient linear left top left bottom from 000 to 0
  • 在浏览器中刷新页面而不重新提交表单

    我是一名 ASP NET 开发人员 我通常会发现自己正在浏览器中打开正在处理的网页 Chrome 是我选择的浏览器 但这个问题与任何浏览器都相关 我的工作流程通常是这样的 编写代码 在 Visual Studio 中重建项目 然后使用 Al
  • apache2.4.7 未将“404 Not Found”页面记录到 error.log

    我见过有关如何做的问题not将404错误记录到错误日志中 这是相反的 由于某种原因 我的 apache 安装没有将 404 错误记录到我的错误日志 或与此相关的访问日志 我已经正确设置了错误日志并看到了错误 但是当我访问不存在的页面时 我只
  • 有没有办法使用 JavaScript 发送 CoAP 命令?

    我只是想知道是否有一种方法可以在浏览器中发送 CoAP 查询 使用 JavaScript 但不能使用 node js Thanks 不幸的是 这不可能直接实现 出于安全原因 Web 浏览器不为 UDP 套接字提供任何 JavaScript
  • 创建连接到 facebook 的 j2me 应用程序(不是 swt 项目)

    我想创建一个简单的 j2me 应用程序作为开始 它与 facebook 链接 为了这 我从下载了 facebook apihttp kenai com projects facebookapime downloads http kenai
  • 如何使用子进程打开新的浏览器选项卡?

    我正在打开一个新的 IE 窗口 subprocess Popen r os environ PROGRAMFILES Internet Explorer IEXPLORE EXE Call URL 当 IE 关闭时这很好 但即使打开它也会生

随机推荐