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

时间:2013-05-26 13:25:42

标签: internet-explorer http http-status-codes

我的网站大量使用CSS3和一些HTML5现代功能。所以它在IE7或更低版​​本中不起作用,看起来非常糟糕。我们的决定是我们不会支持这些旧浏览器,因为对于极少数用户来说这是太多的工作。他们没有显示常规页面,而是看到特殊的错误/警告页面,他们告诉他们为什么会看到它以及他们应该安装更新的浏览器。

这很好用。但我的问题是 - 我应该使用此页面发送什么HTTP状态代码?有关系吗 ?现在,它定期200 OK。

感谢您的时间和精力。

1 个答案:

答案 0 :(得分:4)

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

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

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

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

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

  • 通过告诉浏览器发生的事情,为您的回复提供语义错误代码。同样,浏览器如何对此错误代码做出反应是依赖于实现的,并且可能会发生很大变化。显然,应返回4xx status code,因为它旨在表示客户端错误。我很想使用415 Unsupported Media Type417 Expectation Failed

HTTP响应代码来源:http://en.wikipedia.org/wiki/List_of_HTTP_status_codes