栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

一文搞懂:http和 https的通信过程及区别

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

一文搞懂:http和 https的通信过程及区别

HTTP虽然使用极为广泛, 但是却存在不小的安全缺陷, 主要是其数据的明文传送和消息完整性检测的缺乏, 而这两点恰好是网络支付, 网络交易等新兴应用中安全方面最需要关注的。
 

HTTPS 协议是由 HTTP 加上 TLS/SSL 协议构建的可进行加密传输、身份认证的网络协议,主要通过数字证书、加密算法、非对称密钥等技术完成互联网数据传输加密,实现互联网传输安全保护。设计目标主要有三个。
(1)数据保密性:保证数据内容在传输的过程中不会被第三方查看。就像快递员传递包裹一样,都进行了封装,别人无法获知里面装了什么。
(2)数据完整性:及时发现被第三方篡改的传输内容。就像快递员虽然不知道包裹里装了什么东西,但他有可能中途掉包,数据完整性就是指如果被掉包,我们能轻松发现并拒收。
(3)身份校验安全性:保证数据到达用户期望的目的地。就像我们邮寄包裹时,虽然是一个封装好的未掉包的包裹,但必须确定这个包裹不会送错地方,通过身份校验来确保送对了地方。

一、两者的区别
  • 端口:http 端口号是 80,https 端口号是 443

  • 传输协议:http 是超文本传输协议,属于明文传输;https 是安全的超文本传输协议,是经过 SSL 加密后的传输协议

  • 安全性:https 使用了 TLS/SSL 加密,比 http 更加的安全

  • 证书:https 需要申请 ca 证书

二、HTTP 的通信过程
  • 理解:作为标准的 C/S 模型,http 协议总是由客户端发起,服务端进行响应。

  • DNS 解析,域名系统 DNS 将域名解析成 IP 地址

  • 建立 TCP 连接,进行 TCP 的三次握手

  • 客户端发送请求

  • 服务端响应客户端,向客户端发送数据

  • 通信完成,TCP 连接关闭

三、HTTPS 的通信过程
  • 理解:https 通信是建立在 ssl 连接层之上的请求和响应,客户端将加密组件发送到服务端,服务端进行匹配后将数字证书等信息发送到客户端,客户端进行证书验证,验证通过后使用非对称加密对数据的密钥进行协商,协商后得到对称的加密密钥,然后使用对称算法进行 TCP 链接,然后与客户端进行三次握手后,进行数据传输,传输完成后,四次挥手,断开链接,通信结束。

  • 客户端和服务端通过 TCP 建立连接,并发送 https 请求。

  • 服务端响应请求,并将数字证书发送给客户端,数字证书包括公共秘钥、域名、申请证书的公司。

  • 客户端收到服务端的数字证书之后,会验证数字证书的合法性。

  • 如果公钥合格,那么客户端会生成 client key,一个用于进行对称加密的密钥,并用服务端的公钥对客户端密钥进行非对称加密。

  • 客户端会再次发起请求,将加密之后的客户端密钥发送给服务端。

  • 服务端接收密文后,会用私钥对其进行非对称解密,得到客户端秘钥。并使用客户端秘钥进行对称加密,生成密文并发送。

  • 客户端收到密文,并使用客户端秘钥进行解密,获取数据。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/967430.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号