HSTS 示例讲解
文章不易,请关注公众号 毛毛虫的小小蜡笔,多多支持,谢谢。
定义
HSTS,全称是HTTP Strict Transport Security。
设置后,浏览器只会通过HTTPS来访问服务端。
详情解释
你的网站第一次通过HTTPS请求,服务器响应Strict-Transport-Security头,浏览器记录下这些信息,然后后面尝试访问这个网站的请求都会自动把HTTP替换为HTTPS。
当HSTS头设置的过期时间到了,后面通过HTTP的访问恢复到正常模式,不会再自动跳转到HTTPS。
每次浏览器接收到Strict-Transport-Security头,它都会更新这个网站的过期时间,所以网站可以刷新这些信息,防止过期发生。
Chrome、Firefox等浏览器里,当您尝试访问该域名下的内容时,会产生一个307 Internal Redirect(内部跳转),自动跳转到HTTPS请求。
如果服务器发送的TLS证书无效,用户不能忽略浏览器警告继续访问网站。
一般情况下,如果是证书无效,浏览器会给出提示警告,但用户还是能选择继续访问来忽略警告。
但如果开启了HSTS,那么浏览器就不会让你绕过警告了。
响应头
在服务端设置响应头,即可开启HSTS功能。
// 后面两个值是可选的。
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Demo
在浏览器输入www.baidu.com
浏览器默认是HTTP协议,所以发起的第一个请求是HTTP请求。
然后服务端会重定向到HTTPS,此时状态码是301或302。直接输入baidu.com实际上会重定向到www.baidu.com。
为了排除域名跳转因素影响,所以这里假设直接输入www.baidu.com来验证,不带协议就可以。
具体如下截图所示:
详情 请查看:毛毛虫的小小蜡笔
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2016-04-14 git log
2014-04-14 深入理解 Express.js