• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
aibianchengya
博客园    首页    新随笔    联系   管理    订阅  订阅
Http和Https

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。

原文链接:https://monkey.blog.xpyvip.top/archives/http-https

posted on 2022-10-29 23:08  程序猿的代码  阅读(206)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3