我正在为项目构建一个简单的HTTP服务器。 大多数网站都有自定义404错误页面。但有时候,你会看到Firefox吐出一个通用的404页面(或405等等......)。 它是如何决定做什么的? HTTP响应应该是什么? 是否“HTTP / 1.0 404找不到”?
由于
答案 0 :(得分:4)
如果服务器找不到所请求的资源(例如网页),它会在HTTP标头部分中发送 HTTP / 1.0 404 NOT FOUND 。
服务器可以映射此错误的错误页面,因此您可以获得可读的错误页面。 浏览器还可以映射自己的错误页面,因此您可以看到特定于浏览器的错误404消息。
您可以在日志文件的状态字段中看到错误代码。
您可以将用户重定向到具有以下结构的特定网页:
<HTML>
<head>
<meta HTTP-EQUIV="Refresh" CONTENT="5; URL=not404.htm">
</head>
</HTML>
答案 1 :(得分:2)
如果您要创建HTTP服务器,可能需要查看描述协议的RFC:http://www.faqs.org/rfcs/rfc2616.html
对于404状态代码,它说:
服务器找不到任何东西 匹配Request-URI。没有
指示是否是 条件是暂时的或
常驻。 410(Gone)状态代码 如果服务器知道,应该使用 通过一些内部可配置 机制,旧资源 永久不可用,没有 转发地址。这个状态 代码是服务器时常用的 不希望透露具体原因 请求已被拒绝,或何时被拒绝 没有其他回应适用。
您无法控制浏览器如何处理每个状态代码,您可以依赖其良好的行为。
也就是说,您可以从使用现有的HTTP服务器中受益。请查看此question有关如何在几天前发布的C或C ++中创建HTTP服务器的信息,
答案 2 :(得分:2)
返回带有404响应代码的html主体是完全有效的。如果没有提供正文,则浏览器将显示默认页面。
答案 3 :(得分:1)
因此,在大多数情况下,Firefox不会显示通用的404错误页面;您正在考虑使用Internet Explorer,如果网站的网页低于特定大小并且显示自己的网页,则会忽略网页的404页面。
答案 4 :(得分:-2)
通常在网络服务器中设置,即:当服务器获得404时,请将其引用到此页面。