作者:赵lamarta | 来源:互联网 | 2023-06-23 11:52
Https就是为了解决Http的缺点而生的一种通讯方式。Https由Http+加密+认证+数据完整性得到。也就是说将这些信息组合到一起就是Https。Https并不是一种新的应用层
Https就是为了解决Http的缺点而生的一种通讯方式。
Https由Http+加密+认证+数据完整性得到。也就是说将这些信息组合到一起就是Https。Https并不是一种新的应用层协议,而是SSL和TLS,Http组合得到的。如下图:
可以看到如果没有SSL,Http直接和TCP通讯,当有了SSL这一层Https相当于中间人帮我们处理这些安全的事情。这样我们就省心多了。
Https工作流程
要完全弄清楚是很复杂的,同时也违背了我们这门课程的最终目的。所有这里简单总结下,详细的大家可以参考权威的书籍:
1. 当用户访问Https网站时,服务端将自己的证书发送给浏览器,里面包含了网址,用于加密的公钥,以及证书颁发机构等信息
2. 浏览器得到证书,访问证书的颁发机构校验证书的合法性,如果合法则生成一个随机字符串用作后续通讯过程中的加密key,然后用证书的公钥加密,将随机生成的key和加密后的数据在发送到服务端
3. 服务端拿到接收的key,和加密的信息,通过私钥解密,比较是否一致,如果一致则使用该字符串作为后面的数据通讯的加密key。并且在返回一串字符和加密的字符
4. 浏览器拿到这些数据和服务端一样,解密校验是否一样,如果一样,那握手就结束了,后面就使用上面随机生成的key作为后续通讯的加密key
需要注意的是上述任何一个步骤失败都会终止该次握手。
另外上面说的是后面的加密key使用的是客户端随机生成的key,在这一步我们也可以使用预先生成的证书放到客户端,这样后面的加密使用这个公钥,而不是随机字符串。
大概流程就是这样。
如果想知道如何在Okhttp中使用Https,请点击《详解Okhttp网络框架电子书》查看完整版电子书。
本文来自《详解Okhttp网络框架电子书》,视频教程也可以通过:爱学啊官网、腾讯课堂、网易云课堂、淘宝教育学习。