我正在为项目构建一个简单的HTTP服务器。 大多数网站都有自定义404错误页面。但有时候,你会看到Firefox吐出一个通用的404页面(或405等等......)。 它是如何决定做什么的? HTTP响应应该是什么? 是“HTTP / 1.0 404未找到”足够?

由于

有帮助吗?

解决方案

因此,在大多数情况下,Firefox不会显示通用的404错误页面;您正在考虑使用Internet Explorer,如果网站的网页低于特定大小并且显示自己的网页,则会忽略网页的404页面。

其他提示

如果服务器找不到所请求的资源(例如网页),它会在HTTP标头部分中发送 HTTP / 1.0 404 NOT FOUND

服务器可以映射此错误的错误页面,因此您可以获得可读的错误页面。 浏览器还可以映射自己的错误页面,因此您可以看到特定于浏览器的错误404消息。

您可以在日志文件的状态字段中看到错误代码。

您可以将用户重定向到具有以下结构的特定网页:

<HTML>
<head>
<meta HTTP-EQUIV="Refresh" CONTENT="5; URL=not404.htm">
</head>
</HTML>

详情请参阅欢迎使用404错误页面.com

返回带有404响应代码的html主体是完全有效的。如果没有提供正文,则浏览器将显示默认页面。

  1. 如果您只发送 HTTP / 1.0 404 NOT FOUND ,则会显示浏览器默认值。
  2. 如果您在响应中添加正文,则浏览器将主要使用该主体。

如果您正在创建HTTP服务器,您可能需要查看描述该协议的RFC: http://www.faqs.org/rfcs/rfc2616.html

对于404状态代码,它说:

  

服务器找不到任何东西   匹配Request-URI。无结果   指示是否是   条件是暂时的或
  常驻。 410(Gone)状态代码   如果服务器知道,应该使用   通过一些内部可配置   机制,旧资源   永久不可用,没有   转发地址。这个状态   代码是服务器时常用的   不希望透露具体原因   请求已被拒绝,或何时被拒绝   没有其他回应适用。

您无法控制浏览器如何处理每个状态代码,您可以依赖其良好的行为。

也就是说,您可以从使用现有的HTTP服务器中受益。请查看问题,了解如何在几天前发布的C或C ++中创建HTTP服务器,

通常在网络服务器中设置,即:当服务器获得404时,请将其引用到此页面。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top