https和http的区别与比较
博客迁移至 zhaoxi.ml
http
是一个基于tcp/ip的应用层的的请求/响应式协议, 全称超文本传输协议.
特点:
- 简单快速灵活, 常用方式 Post Get Put Delete , 支持多种传输数据类型
- 无状态, 多次请求没有状态保持
- 无连接, 每次处理一个请求
- 端口 80
不加密的, 任何内容都可能被伪装或者篡改
https
https = http + ssl加密 + 认证 + 完整性保护
https就是将http与tcp通信中层添加了一个ssl/tsl加密变成 http->ssl/tsl->tcp
特点:
- 继承了http的所有特点
- 接口层使用了http和tcp直接新增了ssl/tsl协议(tsl 是 ssl 标准化后的名字)
- 因为ssl/tsl (引入了 证书/私钥/公钥)加密会耗费服务器资源, 所以默认提供http.
- 端口443
加密, 相对http较安全
SSL(TSL 传输层安全协议)
安全套接层 基于 应用层和TCP层协议之间, 为数据通信提供安全组支持.
主要工作流程:
- 客户端想服务器索要公钥
- 判定公钥的证书是否由受信任的CA机构签发,是否有效等, 不是提示警告
- 使用公钥加密一个随机值(私钥)发送给服务端
- 服务端使用私钥解密保存这个随机值, 双方基于这个随机值进行对称加密通信
- 服务器端使用随机值加密返回数据
- 客户端使用随机值解密
简化过程就是: - 客户端向服务器端索要并验证公钥
- 双方协商生成"回话秘钥"
- 双方采用"回话秘钥"进行加密通信
总结区别
- http 连接简单, 无状态, 明文传输; https 由SSL+http构建加密传输+ 身份认证, 比较安全, 但由于加密的缘故, 所以相对耗费资源.
- http 和 https 连接方式不一致, http默认使用80端口, https使用443端口.
- https 协议确认到ca证书, 需要一定费用.