HSTS 与 307 状态码

最近线上产品突然在 Chrome 浏览器上出现 307 状态码,并跳转到 https 版。由于 https 尚未部署完毕,导致了相当严重的后果。

但是 307 代码是什么含义呢?页面又为何会出现 307 状态码呢?我之前都没见过这个状态码,查了才知道原来它也是一种重定向。

浏览器刚开始出现 307 状态码的我的第一反应是后端代码是不是又写了什么奇怪的东西进去。但是后来发现后端代码并没有响应这个状态码,然后我又翻了 Nginx 配置等东西,也没发现什么不和谐的地方。并且之后测试时即使断开网络,浏览器依然会出现 307。于是我认为这是 Chrome 自己捣鼓出来的东西。

问了下谷歌才知道还有 HSTS 这东西。而且确实在服务器响应的头中找到了 Strict-Transport-Security。那么解决这个问题首先就应该干掉这个头。但即使把这个头干掉,其 max-age 以让会生效。所以还需要清掉 max-age 才可以恢复已经被污染的客户端环境。造成这个问题的原因就是因为误加了 Strict-Transport-Security 这个响应头。从它的名字就可以看出它大概是干什么的了。这个头本身并没什么问题,它的作用就是强制客户度使用 https。但由于自己的 https 还没部署好,所以加了这个头就作死了。

至于 307 状态码,其实就是个重定向而已。比起 301 和 302 这些,307 重定向是可以把 POST 的数据也一并重定向的。

时间: 2024-11-07 04:36:05

HSTS 与 307 状态码的相关文章

HTTP状态码之302、303和307

今日读书,无法理解HTTP302.303.307状态码的来龙去脉,决定对其做深究并总结于本文. <HTTP权威指南>第3章在讲解30X状态码时,完全没有讲清楚为什么要有302.303.307的关系,一句“问题出在HTTP/1/1”让我一头雾水,莫名其妙:而第五章在讲重定向响应时,没有说到现在很常见的302,反而是说我从没遇到过的303和307.很是迷惑,对于这3个状态码,WiKi和RFC文档都有详解,下面我以我的思维添油加醋的描述一遍. 一.状态码——302 RFC1945(http://to

关于HTPP状态码的实践:307的使用

HTTP状态码307 今天使用node 搭建个人服务器有如下需求: 注册成功时,直接重定向到登录路由并且发起POST请求实现登录.哎哟,有人就要问了:POST请求要么又提交表单实现,要么使用ajax实现,这没法实现! 在网上看了相关教程,都是一些含糊其辞的文章,新人根本看不懂! 结论:307 状态码其实就是个重定向而已.比起 301 和 302 这些,307 重定向是可以把 POST 的数据也一并重定向的. 下面是较为更详细一点的介绍: 链接:http://www.cnblogs.com/csw

HTTP状态码302、303和307的故事

<HTTP权威指南>第3章在讲解30X状态码时,完全没有讲清楚为什么要有302.303.307,以及他们的关系,一句"问题出在HTTP/1/1"让我一头雾水,莫名其妙:而第五章在讲重定向响应时,没有说到现在很常见的302,反而是说我从没遇到过的303和307.很是迷惑,对于这3个状态码,WiKi和RFC文档都有详解,下面我以我的思维添油加醋的描述一遍. 一.状态码--302 RFC1945(http://tools.ietf.org/html/rfc1945#page-34

HTTP状态码302,303,307间的那些事

<HTTP权威指南>第3章在讲解30X状态码时,完全没有讲清楚为什么要有302.303.307,以及他们的关系,一句“问题出在HTTP/1/1”让我一头雾水,莫名其妙.所以在网上收集到了这篇资源,mark. 一.状态码——302 RFC1945(http://tools.ietf.org/html/rfc1945#page-34),也就是HTTP1.0在介绍302时说,如果客户端发出POST请求后,收到服务端的302状态码,那么不能自动的向新的URI发送重复请求,必须跟用户确认是否该重发,因为

HTTP状态码大全

完整的 HTTP 1.1规范说明书来自于RFC 2616,你可以在http://www.talentdigger.cn/home/link.php?url=d3d3LnJmYy1lZGl0b3Iub3JnLw%3D%3D在线查阅.HTTP 1.1的状态码被标记为新特性,因为许多浏览器只支持 HTTP 1.0.你应只把状态码发送给支持 HTTP 1.1的客户端,支持协议版本可以通过调用request.getRequestProtocol来检查. 本部分余下的内容会详细地介绍 HTTP 1.1中的状

http 状态码(转)

HTTP状态码大全 完整的 HTTP 1.1规范说明书来自于RFC 2616,你可以在http://www.talentdigger.cn/home/link.php?url=d3d3LnJmYy1lZGl0b3Iub3JnLw%3D%3D在线查阅.HTTP 1.1的状态码被标记为新特性,因为许多浏览器只支持 HTTP 1.0.你应只把状态码发送给支持 HTTP 1.1的客户端,支持协议版本可以通过调用request.getRequestProtocol来检查. 本部分余下的内容会详细地介绍 H

HTTP——状态码

(转载) 完整的 HTTP 1.1规范说明书来自于RFC 2616,你可以在http://www.talentdigger.cn/home/link.php?url=d3d3LnJmYy1lZGl0b3Iub3JnLw%3D%3D在线查阅.HTTP 1.1的状态码被标记为新特性,因为许多浏览器只支持 HTTP 1.0.你应只把状态码发送给支持 HTTP 1.1的客户端,支持协议版本可以通过调用request.getRequestProtocol来检查. 本部分余下的内容会详细地介绍 HTTP 1

用HTTP状态码实现提交表单后刷新页面不重复提交

正常情况下,表单提交后如果用户刷新页面会重复提交表单,有些情况下我们不希望表单重复提交,利用HTTP协议中的307状态码重定向页面可以实现这个目的.实例如下: 表单页面代码: <form action="1.php" method="post"> <input type="text" name="na"> <input type="submit" value="提交&

常见的HTTP状态码深入理解

状态码的职责是当客户端向服务器端发送请求时,描述返回请求结果.借助状态码,用户可以知道服务器端是正常处理了请求,还是出现了什么错误. RFC2616定义的状态码,由3位数字和原因短信组成. 数字中的第一位指定了响应类别,后两位无分类.响应类别有以下5种: Type Reason-phrase Note 1XX Informational 信息性状态码,表示接受的请求正在处理 2XX Success 成功状态码,表示请求正常处理完毕 3XX Redirection 重定向状态码,表示需要客户端需要