http是基于tcp协议的应用协议,意思就是通过tcp建立连接后后面发送的消息是http格式的, 已打电话为例, 基于电话线我们可以用汉语,英语,日语沟通。同样的基于tcp协议我们可以用https,fps,等进行沟通。
https就是http+ssl。就是安全版的http。
HTTP
直接看抓包结果
可以看到发送什么消息都可以直接明文看到,响应消息也可以直接看到
建立tcp连接后直接发送消息
没有安全性。
HTTPS
https建立tcp连接后还有一套加密解密过程先看下抓包
可以看到同样的请求多了很多交互步骤。
而且抓出来的数据也是乱码,保证了安全性
看下总体流程
客户端hello,发送客户端支持的加密方式以及随机数等
服务端hello,确认加密方式,证书以及公钥。
3client key exchange 客户端本地验证证书, 用服务端发过来的公钥加密pre随机发给服务器
client finished客户端根据pre随机数,客户端随机数,服务端随机数根据规定好的对称算法生成对称密钥。
server finished服务器用私钥解密pre随机数,然后根据相同对称算法生成好对称密钥.
后面的通讯都是用这个对称密钥来加密解密,总体流程就是用非对称加密算法来沟通出对称加密密钥。