热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

什么是Https?

Https就是为了解决Http的缺点而生的一种通讯方式。Https由Http+加密+认证+数据完整性得到。也就是说将这些信息组合到一起就是Https。Https并不是一种新的应用层

Https就是为了解决Http的缺点而生的一种通讯方式。

Https由Http+加密+认证+数据完整性得到。也就是说将这些信息组合到一起就是Https。Https并不是一种新的应用层协议,而是SSL和TLS,Http组合得到的。如下图:

《什么是Https?》

可以看到如果没有SSL,Http直接和TCP通讯,当有了SSL这一层Https相当于中间人帮我们处理这些安全的事情。这样我们就省心多了。

Https工作流程

要完全弄清楚是很复杂的,同时也违背了我们这门课程的最终目的。所有这里简单总结下,详细的大家可以参考权威的书籍:

1. 当用户访问Https网站时,服务端将自己的证书发送给浏览器,里面包含了网址,用于加密的公钥,以及证书颁发机构等信息

2. 浏览器得到证书,访问证书的颁发机构校验证书的合法性,如果合法则生成一个随机字符串用作后续通讯过程中的加密key,然后用证书的公钥加密,将随机生成的key和加密后的数据在发送到服务端

3. 服务端拿到接收的key,和加密的信息,通过私钥解密,比较是否一致,如果一致则使用该字符串作为后面的数据通讯的加密key。并且在返回一串字符和加密的字符

4. 浏览器拿到这些数据和服务端一样,解密校验是否一样,如果一样,那握手就结束了,后面就使用上面随机生成的key作为后续通讯的加密key

需要注意的是上述任何一个步骤失败都会终止该次握手。

另外上面说的是后面的加密key使用的是客户端随机生成的key,在这一步我们也可以使用预先生成的证书放到客户端,这样后面的加密使用这个公钥,而不是随机字符串。

大概流程就是这样。

如果想知道如何在Okhttp中使用Https,请点击《详解Okhttp网络框架电子书》查看完整版电子书。

本文来自《详解Okhttp网络框架电子书》,视频教程也可以通过:爱学啊官网、腾讯课堂、网易云课堂、淘宝教育学习。

《什么是Https?》


推荐阅读
author-avatar
赵lamarta
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有