HTTP 与 HTTPS 快速对比

HTTP 与 HTTPS 协议比较

协议 http https
名称 HyperText Transfer Protocol Hyper Text Transfer Protocol over Secure Socket Layer
CA证书 不需要 需要申请
加密 只能对报文主体 body 进行加密 对请求和响应报文进行加密
安全性 无法避免中间人攻击 可以阻止中间人攻击
自底向上层级结构 IP->TCP->HTTP IP->TCP->SSL/TLS->HTTPS

HTTP 过程

客户端 内容 方向 服务端
三次握手 SYN ->
三次握手 SYN_ACK <-
三次握手 ACK ->
...http 请求与响应...
四次挥手 FIN ->(<-)
四次挥手 ACK <-(->)
四次挥手 FIN_ACK <-(->)
四次挥手 ACK ->(<-)

HTTP 报文格式

  • 请求报文
名称 内容 简写
请求行 Function/URL/Version FUV
首部行 key-value KV
主体 Body
  • 响应报文
名称 内容 简写
响应行 Version/StatusCode/Phrase VSP
首部行 key-value KV
主体 Body

SSL连接证书验证内容

  • 验证数字摘要与解密后的内容是否一致
  • 验证证书链上的根证书是否在操作系统或浏览器的可信任证书列表内

HTTPS 过程

客户端 内容 方向 服务端
随机数1,可支持加密算法 ->
随机数2,匹配的加密算法 <-
服务证书 <-
验证证书
组装会话密钥(随机数1,随机数2,预主密钥)
通过公钥加密预主密钥 传递预主密钥 ->
通过私钥解密预主密钥,获得(随机数1,随机数2,预主密钥)
组装会话密钥(与客户端一致)
会话密钥加密握手消息 发送握手消息 ->
发送握手消息 <- 加密握手消息

加密解密

名称 代表示例 特性
对称加密 AES、DES 加密与解密密钥相同、高效
非对称加密 RSA 加密与解密密钥不同、耗性能

你可能感兴趣的:(HTTP 与 HTTPS 快速对比)