我有一个大量使用 CSS3 和一些 HTML5 现代特性的网站。所以它在 IE7 或更低版本中不起作用,而且看起来很糟糕。我们决定不支持这些旧浏览器,因为它对极少数用户来说工作量太大。他们没有显示常规页面,而是看到特殊的错误/警告页面,在那里他们告知他们为什么看到它以及他们应该安装更新的浏览器。
这工作正常。但我的问题是 - 我应该用这个页面发送什么 HTTP 状态代码?有关系吗 ?现在正常200OK。
感谢您的时间和精力。
我有一个大量使用 CSS3 和一些 HTML5 现代特性的网站。所以它在 IE7 或更低版本中不起作用,而且看起来很糟糕。我们决定不支持这些旧浏览器,因为它对极少数用户来说工作量太大。他们没有显示常规页面,而是看到特殊的错误/警告页面,在那里他们告知他们为什么看到它以及他们应该安装更新的浏览器。
这工作正常。但我的问题是 - 我应该用这个页面发送什么 HTTP 状态代码?有关系吗 ?现在正常200OK。
感谢您的时间和精力。
您在这里有几个选择,它们主要取决于两个参数:
状态码是否适合这样的问题,甚至是否允许在不涉及HTTP 事务但发送到浏览器的内容的条件下使用它?(浏览器显然不会通过 HTTP 判断它是否支持给定的 HTML/CSS 标准)。
浏览器将如何解释它。某些浏览器在收到特定状态代码时甚至不会费心呈现发送的 HTML,而是显示默认的内置页面。
我要做的是选择一个正确记录的错误代码并将其用作语义响应,并确保浏览器不会忽略正文。我会建议两种不同的解决方案:
302 Found
在最初请求的资源上响应 a ,并在发送200 OK
. 这是大多数站长在出现这种问题时所做的,主要是因为HTTP事务本身没有失败,只是我们正在重定向用户,因此可以根据额外的HTTP参数生成正确的视图。
通过告诉浏览器发生了什么,为您的响应提供语义错误代码。同样,浏览器如何对这个错误代码做出反应是依赖于实现的,并且可能会有很大的不同。显然,应该返回一个4xx 状态代码,因为它旨在表示客户端错误。我会很想使用 a415 Unsupported Media Type
或 a 417 Expectation Failed
。
HTTP 响应代码来源:http ://en.wikipedia.org/wiki/List_of_HTTP_status_codes