首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的浏览器如何知道它需要连接到端口443或端口80?

问我的浏览器如何知道它需要连接到端口443或端口80?
EN

Stack Overflow用户
提问于 2015-03-28 22:33:17
回答 3查看 3.9K关注 0票数 3

这就是我想要做的:

  1. 打开浏览器,开始浏览任何https网站,如Gmail或Google.com。
  2. 我可以通过Wireshark看到名称解析是由DNS服务器执行的。
  3. 但在此之后,连接直接建立到443 (从TCP握手开始)。
  4. 我无法理解的一件事是,浏览器如何知道它需要连接到端口443,我试着探索DNS数据包,但它只包含目标地址,没有任何信息表明它需要连接到端口443。
  5. 即使说,浏览器在第一次查询时具有优先权,它看到如果端口443是打开的,那么就连接到它或连接到端口80,但是如果我连接到一个普通的HTTP网站,我无法看到任何这样的行为,也就是说,如果我进入一个正常的HTTP网站,浏览器就没有流量表明它首先搜索了端口443,然后去了端口80。

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

EN

回答 3

Stack Overflow用户

发布于 2015-03-28 22:59:15

https:在URL中的存在告诉它。

票数 4
EN

Stack Overflow用户

发布于 2020-12-03 00:35:51

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

票数 1
EN

Stack Overflow用户

发布于 2022-08-28 05:40:38

我想这有点像问FTP客户端为什么要使用FTP端口

除非您指定一个带有"http://...:port“的端口,否则浏览器使用80表示http,443用于https,因为这是协议定义的,但是.

服务器可以使用“严格的传输安全性:最大年龄=.”来响应。然后,浏览器需要在https上重新尝试并记住以下内容

此外,参见HSTS,Chrome还附带了一个大的预置HSTS列表,因此即使您在HSTS列表中键入http,浏览器也会查看其HSTS配置,查看该站点是否指定了该站点,而是在端口443上更改为HTTPS,而无需先在端口80上尝试http。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29323387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档