浏览器如何决定发送HTTP/HTTPS请求?实测不符问题问询
Chrome首次访问非预加载HSTS站点直接发起HTTPS请求的原因
你遗漏了Chrome几个非HSTS相关的HTTPS优先策略,对应原因如下:
- 地址栏输入默认策略:Chrome 90及之后的正式版本,针对用户在地址栏输入的不带协议前缀的裸域名,会优先尝试发起HTTPS请求,仅在HTTPS请求无法正常建立时才会回退到HTTP请求,这一逻辑和你了解的「点击HTTP链接/主动输入http前缀地址才会先发起HTTP请求」的规则分属不同场景。
- 父级域名HSTS继承:你仅清除了
mail.zoho.com的单域名HSTS缓存,如果父级域名zoho.com存在HSTS缓存且配置了includeSubDomains指令,所有子域名都会被强制发起HTTPS请求,你可以在chrome://net-internals/#hsts中查询父级域名的HSTS状态验证。 - 常用域名自动HTTPS升级列表:Chrome内置了动态更新的高流量常用域名列表,属于该列表的域名即便未进入HSTS预加载列表,也会被默认优先发起HTTPS请求,
mail.zoho.com作为全球使用率较高的企业邮箱服务域名,已被纳入该升级列表。
如果要验证你原本认知的HSTS规则,可以主动在地址栏输入带http://前缀的http://mail.zoho.com发起请求,无相关HSTS规则时浏览器会先发起HTTP请求,再响应3xx跳转逻辑。
内容的提问来源于stack exchange,提问作者Kar98
相关产品推荐
相关产品推荐

