侧边栏壁纸
博主头像
Monkey部落博主等级

Monkey部落,分享技术、经验、遇到的问题及解决方法,欢迎大家互相讨论分享。

  • 累计撰写 59 篇文章
  • 累计创建 36 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

Http和Https

Monkey部落
2020-06-04 / 0 评论 / 0 点赞 / 122 阅读 / 874 字

Http和Https

首先我们介绍一下http和https,http是超文本传输协议,无状态并且是明文传输。https是在http协议的基础上增加了SSL/TLS协议,设备之间的通信是加密的,比Http协议安全。我们先了解一下TCP/IP网络模型和OSI七层网络模型,先知道HTTP协议主要工作在哪一层。

TCP/IP网络模型

image.png
image.png

OSI七层网络模型

image.png

HTTP

组成:

超文本(Hypertext)、传输(Transfer)、协议(Protocol),默认是工作在80端口,以明文方式传输内容,不提供任何方式的数据加密,所以如果被截取到,即可知道里面的内容。

HTTPS HTTP + TLS/SSL

介绍:

Hypertext Transfer Protocol Secure, 超文本传输安全协议,默认是工作在443端口,采用SSL/TLS协议来加密数据包,提高了数据的安全性。

通讯过程:

  1. 首先客户端和服务端需要进行TCP三次握手,建立连接,并且客户端发送https请求。
  2. 服务端收到请求,将ssl证书发送给客户端,证书其实就是公钥,里面还包含其他的信息,例如域名、申请的公司、过期时间等等
  3. 客户端解析并验证证书,如果证书没问题,客户端会生成一个秘钥,之后会使用证书中的公钥对该秘钥进行非对称加密
  4. 客户端将加密后的秘钥发送给服务端。
  5. 服务端解析秘钥,这里使用服务器的私钥进行解密,得到客户端刚刚生成的秘钥。
  6. 服务端将需要传输的数据使用刚刚解密出来的秘钥进行对称加密,传输给客户端。
  7. 客户端使用生成的秘钥对接收到的数据进行解密,获取真实的数据。

包含的算法:

  1. 秘钥交换算法
  2. 签名算法
  3. 对称加密算法
  4. 摘要算法

解决的相关问题:

  1. 传输过程容易被攻击者监听
  2. 传输的数据容易被攻击者窃取
  3. 发送方和接收方容易被伪造

总结:

模型:

image.png

区别:

  1. HTTP 的默认端口是 80,而 HTTPS 的默认端口是443
  2. http是明文传输,https是加密传输,https相对而言更安全。
  3. http连接简单,并且是无状态的。https连接需要使用秘钥进行加密解密,连接比http复杂。
  4. http相应快,只需要进行TCP三次握手,https相比较,相应速度慢,除了TCP三次握手,还需要进行SSL握手。
  5. http不需要申请证书,https需要购买ssl证书。
  6. 浏览器显示不同,http浏览器会显示不安全,https浏览器会显示护盾或者锁标志,点击可以看到证书相关信息。

关注微信公众号「平哥技术站」, 每日更新,在手机上阅读所有教程,随时随地都能学习。

觉得写的还不错的小伙伴,请作者喝杯咖啡☕ ,支持一下。😊

如有侵权请立即与我们联系,我们将及时处理,联系邮箱:865934097@qq.com。

0

评论区