Internet explorer 显示旧浏览器的替代错误页面时,HTTP状态代码使用什么?

Internet explorer 显示旧浏览器的替代错误页面时,HTTP状态代码使用什么?,internet-explorer,http,http-status-codes,Internet Explorer,Http,Http Status Codes,我有一个网站,大量使用CSS3和一些HTML5现代功能。因此,它在IE7或更低版本中不起作用,看起来非常糟糕。我们的决定是,我们将不支持这些旧的浏览器,因为它对很少的用户来说是太多的工作。他们看到的不是常规页面,而是特殊的错误/警告页面,在该页面中,他们告知自己为什么会看到该页面,并且应该安装更新的浏览器 这个很好用。但我的问题是-我应该随此页面发送什么HTTP状态代码?这有关系吗?现在,是普通的200行 感谢您的时间和努力。您在这里有几个选择,它们主要取决于两个参数: 状态代码是否适用于此类

我有一个网站,大量使用CSS3和一些HTML5现代功能。因此,它在IE7或更低版本中不起作用,看起来非常糟糕。我们的决定是,我们将不支持这些旧的浏览器,因为它对很少的用户来说是太多的工作。他们看到的不是常规页面,而是特殊的错误/警告页面,在该页面中,他们告知自己为什么会看到该页面,并且应该安装更新的浏览器

这个很好用。但我的问题是-我应该随此页面发送什么HTTP状态代码?这有关系吗?现在,是普通的200行


感谢您的时间和努力。

您在这里有几个选择,它们主要取决于两个参数:

  • 状态代码是否适用于此类问题,是否允许在不涉及HTTP事务但涉及发送到浏览器的内容的情况下使用状态代码?(浏览器显然不能通过HTTP判断它是否支持给定的HTML/CSS标准)

  • 浏览器将如何解释它。一些浏览器在收到特定的状态代码时甚至不需要渲染发送的HTML,而是显示一个默认的内置页面

我要做的是选择一个正确记录的错误代码,并将其用作语义响应,确保浏览器没有忽略主体。我建议两种不同的解决方案:

  • 响应在最初请求的资源上找到的
    302
    ,并在发送
    200 OK
    时将浏览器重定向到错误页面。这是大多数网站管理员在出现此类问题时所做的,主要是因为HTTP事务本身没有失败,只是我们正在重定向用户,以便根据额外的HTTP参数生成适当的视图

  • 通过告诉浏览器发生了什么,为响应提供语义错误代码。同样,浏览器如何对此错误代码作出反应取决于实现,并且可能会有很大差异。显然,应该返回a,因为它是用来表示客户端错误的。我将尝试使用
    415不支持的媒体类型
    417预期失败


HTTP响应代码来源:

我一开始也在考虑302,但我真的很喜欢你使用415或417的想法。如果浏览器不抱怨这可能很棒,是的。那么“426-需要升级”呢?这对我来说是有意义的,但描述与升级协议有关,而不是与浏览器有关:“客户端应切换到不同的协议,如TLS/1.0,在升级头字段中给出。”HTTP升级用于指示首选项或要求切换到不同版本的HTTP或其他协议(如果可能)。有关更多信息,请参阅。