首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >https是如何识别的?

https是如何识别的?
EN

Stack Overflow用户
提问于 2019-03-04 05:08:27
回答 1查看 29关注 0票数 -1

我在http头文件中没有看到任何关于安全连接的内容(对于http/1.1、http/2和https基本上都是一样的)。服务器如何知道我们需要安全的连接?

据我所知,https只是在进入TCP连接之前,由TLS‘工具’(仍然是在用户端,也就是在浏览器中)加密的普通老式http。

似乎唯一的认可是在安全连接中,在TCP握手之后立即发出TLS客户端问候消息。如果服务器被设置为支持给定套接字上的安全连接,那么当它看不到该消息时,它就会出错。当连接不安全时,服务器会出错,因为它不知道如何处理客户端hello。

这是正确的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-04 07:30:22

对于给定的端口号,HTTPS处于打开或关闭状态。当服务器配置为在给定端口上侦听时,您可以将其配置为侦听HTTPS或HTTP (方式因服务器而异)。如果服务器被配置为侦听HTTPS连接,那么当某些东西连接时,它会立即启动加密过程,如果另一端不希望加密,则连接将失败。

当浏览器连接到服务器时,它会根据用户输入的URL模式来决定是使用HTTP还是HTTPS。如果他们输入https://,它将在指定的端口上建立到服务器的加密连接(如果未指定,则为443 )。如果服务器不希望在该端口上建立加密连接,则连接将失败。

如果用户键入http://,则浏览器在指定的端口上说出未加密的http (如果未指定,则为80 )。同样,如果服务器希望对流量进行加密,则连接将失败。

只有当双方有匹配的期望时,连接才会成功。

理论上,可以使用HTTP Upgrade header启动未加密的HTTP连接,然后启用加密,这与其他协议中的STARTTLS类似。据我所知,这样的功能即使用过也很少。几乎总是通过使用特定的加密流量端口号从一开始就启用加密。

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

https://stackoverflow.com/questions/54973761

复制
相关文章

相似问题

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