假设我有一台 Vanilla 机器,这是我第一次将它连接到 Internet。任何级别都没有缓存。我通过输入 example.com(没有 http//: 或 https//:)通过浏览器访问网站。将发生的第一件事是机器将域名解析为 IP,然后进行 TCP 握手。还没有发生端口协商,那么浏览器如何知道要连接到哪个端口?
我浏览了网络上的一些文章,其中指出 HSTS 将根据 HTTP 指令告诉浏览器使用哪个端口。但这并不能解释浏览器如何决定它最初需要连接的端口?机器的操作系统如何知道这是哪个流量(ICMP 或 HTTP)。它总是要先连接到端口 80 或其他端口,然后服务器才能知道它将侦听哪个端口?