访问 //xx.com 与 https://xx.com 的区别

为什么写这个呢,原因是我司在搞域名迁移整理时,发现有些资源CDN域名在代码逻辑中是不带协议的,所以探索了一下原因,特地记录一下。

一、 带协议与不带协议的区别

  1. xxx.com

    这只是一个域名,没有指定使用哪种协议来访问该网站。

    如果你在浏览器中输入这样的地址,浏览器会默认使用 HTTP 协议来访问该网站。

    如果服务器支持 HTTPS,浏览器也可以在必要时将连接升级为安全的 HTTPS 连接。

  2. https://xxx.com

    这包含了协议部分 https,它指示了使用安全的 HTTP 协议来访问该网站。

    HTTPS 使用了 SSL/TLS 加密来保护数据传输的安全性,适用于敏感信息(例如登录信息、支付信息)的传输。

二、必要时 如何理解

必要时 指的是当浏览器检测到服务器支持 HTTPS,并且用户访问的网址可以通过 HTTPS 安全连接访问时。

具体来说,以下是一些情况下会发生这种情况:

  1. HSTS (HTTP Strict Transport Security) 设置

    如果网站在响应 HTTP 请求时发送了 HSTS 头部,浏览器将会记住该网站只能通过 HTTPS 访问。这意味着即使用户最初通过 HTTP 访问了该网站,浏览器也会自动将后续的请求升级为 HTTPS。

    示例图:

  1. 用户手动输入 HTTPS 地址

    如果用户在浏览器中直接输入了以 https:// 开头的网址,浏览器会直接使用 HTTPS 协议进行连接。

  2. 自动重定向

    有些网站会将所有的 HTTP 请求自动重定向到 HTTPS。这样,即使用户最初输入了 HTTP 地址,服务器也会在接收到请求后发送一个特殊的响应,告诉浏览器用 HTTPS 重新访问。

    示例图:

总的来说,在现代浏览器中,当服务器支持 HTTPS 时,浏览器会尽可能地使用安全的 HTTPS 连接来访问网站,以确保用户的数据安全。

三、Non-Authoritative-Reason: HSTS

Non-Authoritative-Reason: HSTS 是一个特定于微软服务器的头部(HTTP 响应头部),它通知客户端(通常是浏览器)服务器的响应并不是来自于该资源的权威来源,而是由于 HSTS(HTTP Strict Transport Security)策略而进行了强制转发。

具体来说,当一个客户端发送一个 HTTP 请求,并且该请求被重定向到一个 HTTPS 地址时,如果响应包含 Non-Authoritative-Reason: HSTS 头部,这意味着服务器告诉客户端,该响应是由于 HSTS 策略而进行的重定向,而不是来自于资源的权威来源。

这通常会在服务器在 HSTS 策略生效的情况下,收到一个 HTTP 请求时,将其强制重定向到相应的 HTTPS 地址时使用。这样做是为了确保所有的通信都是经过安全的 HTTPS 连接进行的,以保护通信的安全性和隐私性。

请注意,Non-Authoritative-Reason: HSTS 这个头部可能只在特定类型的服务器配置或者特定的网络环境下出现,而在其他情况下可能不会出现。

相关推荐
Shi_haoliu7 小时前
openClaw源码部署-linux
前端·python·ai·openclaw
程序员小寒7 小时前
前端性能优化之白屏、卡顿指标和网络环境采集篇
前端·javascript·网络·性能优化
烛阴7 小时前
Claude CLI AskUserQuestion 工具详解:让 AI 开口问你
前端·claude
wal13145208 小时前
OpenClaw教程(九)—— 彻底告别!OpenClaw 卸载不残留指南
前端·网络·人工智能·chrome·安全·openclaw
mon_star°8 小时前
在TypeScript中,接口MenuItem定义中,为什么有的属性带问号?,有的不带呢?
前端
牛奶8 小时前
分享一个开源项目,让 AI 辅助开发真正高效起来
前端·人工智能·全栈
次顶级9 小时前
表单多文件上传和其他参数处理
前端·javascript·html
why技术9 小时前
我拿到了腾讯QClaw的内测码,然后沉默了。
前端·后端
谪星·阿凯10 小时前
XSS漏洞解析博客
前端·web安全·xss