3

这就是我想要做的:

  1. 打开浏览器并开始浏览任何 https 网站,例如 Gmail 或 Google.com

  2. 我可以通过Wireshark看到名称解析是由DNS服务器完成的。

  3. 但是之后直接建立到443端口的连接(从TCP握手开始)

  4. 我无法理解的一件事是,浏览器如何知道它需要连接到端口 443,我尝试探索 DNS 数据包,但它只包含目标地址,并且没有信息表明它需要连接到端口 443。

  5. 即使说,浏览器在第一次查询时具有优先权,它会看到如果端口 443 已打开,则连接到它或连接到端口 80,但是如果我连接到普通的HTTP网站,从某种意义上说,如果我去一个普通的 HTTP 网站,没有来自浏览器的流量表明它先搜索了 443 端口,然后转到了 80 端口。

我确定我在这里遗漏了一些东西,但不确定它是什么。

4

2 回答 2

3

https:URL 中的存在说明了这一点。

于 2015-03-28T22:59:15.290 回答
1

浏览器(客户端)使用地址中的 HTTP 或 HTTPS 来确定要使用哪个端口...但是可以将服务器配置为需要 HTTPS,并使用加密和证书将 HTTP 端口 80 连接切换/重定向到 HTTPS 端口 443 . 因此,如果浏览器通过 HTTP 端口 80 连接到服务器,则服务器可以立即将连接切换/重定向到 HTTPS 端口 443。服务器甚至可以配置为将连接从 HTTPS 端口 443 切换/重定向到 HTTP 80 端口。

于 2020-12-03T00:35:51.637 回答