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

一文搞懂│http 和 https 的通信过程及区别拨云见日,带你学好网络安全通信基础

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

? 两者的区别

  • 端口: 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,一个用于进行对称加密的密钥,并用服务端的公钥对客户端密钥进行非对称加密。
  • 客户端会再次发起请求,将加密之后的客户端密钥发送给服务端。
  • 服务端接收密文后,会用私钥对其进行非对称解密,得到客户端秘钥。并使用客户端秘钥进行对称加密,生成密文并发送。
  • 客户端收到密文,并使用客户端秘钥进行解密,获取数据。

HTTPS 通信过程

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/170860.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号