Http和Https
首先我们介绍一下http和https,http是超文本传输协议,无状态并且是明文传输。https是在http协议的基础上增加了SSL/TLS协议,设备之间的通信是加密的,比Http协议安全。我们先了解一下TCP/IP网络模型和OSI七层网络模型,先知道HTTP协议主要工作在哪一层。
TCP/IP网络模型
OSI七层网络模型
HTTP
组成:
超文本(Hypertext)、传输(Transfer)、协议(Protocol),默认是工作在80端口,以明文方式传输内容,不提供任何方式的数据加密,所以如果被截取到,即可知道里面的内容。
HTTPS HTTP + TLS/SSL
介绍:
Hypertext Transfer Protocol Secure, 超文本传输安全协议,默认是工作在443端口,采用SSL/TLS协议来加密数据包,提高了数据的安全性。
通讯过程:
- 首先客户端和服务端需要进行TCP三次握手,建立连接,并且客户端发送https请求。
- 服务端收到请求,将ssl证书发送给客户端,证书其实就是公钥,里面还包含其他的信息,例如域名、申请的公司、过期时间等等
- 客户端解析并验证证书,如果证书没问题,客户端会生成一个秘钥,之后会使用证书中的公钥对该秘钥进行非对称加密
- 客户端将加密后的秘钥发送给服务端。
- 服务端解析秘钥,这里使用服务器的私钥进行解密,得到客户端刚刚生成的秘钥。
- 服务端将需要传输的数据使用刚刚解密出来的秘钥进行对称加密,传输给客户端。
- 客户端使用生成的秘钥对接收到的数据进行解密,获取真实的数据。
包含的算法:
- 秘钥交换算法
- 签名算法
- 对称加密算法
- 摘要算法
解决的相关问题:
- 传输过程容易被攻击者监听
- 传输的数据容易被攻击者窃取
- 发送方和接收方容易被伪造
总结:
模型:
区别:
- HTTP 的默认端口是 80,而 HTTPS 的默认端口是443
- http是明文传输,https是加密传输,https相对而言更安全。
- http连接简单,并且是无状态的。https连接需要使用秘钥进行加密解密,连接比http复杂。
- http相应快,只需要进行TCP三次握手,https相比较,相应速度慢,除了TCP三次握手,还需要进行SSL握手。
- http不需要申请证书,https需要购买ssl证书。
- 浏览器显示不同,http浏览器会显示不安全,https浏览器会显示护盾或者锁标志,点击可以看到证书相关信息。
关注微信公众号「平哥技术站」, 每日更新,在手机上阅读所有教程,随时随地都能学习。
觉得写的还不错的小伙伴,请作者喝杯咖啡☕ ,支持一下。😊
如有侵权请立即与我们联系,我们将及时处理,联系邮箱:865934097@qq.com。