定义
http:超文本传输协议 HyperText Transfer Protocol
https:HyperText Transfer Protocol over Secure Socket Layer 在http的基础上加了安全套接层
HTTP的返回报文
HTTP与HTTPS的区别
- HTTPS协议需要到CA申请证书,一般免费证书很少
- HTTP是明文传输,HTTPS则是具有安全性的SSL加密传输
- HTTP端口号80,HTTPS端口号443
- HTTPS可进行加密传输、身份认证,比较难抓包,比HTTP安全
HTTPS为何安全?
- SSL:Secure Sockets Layer 安全套接层
- TLS:Transport Layer Security 传输层安全
- TLS与SSL在传输层之上对网络连接进行加密,为网络通信提供安全及数据完整性
IP -> TCP -> HTTP
IP -> TCP -> SSL&TSL -> HTTPS
SSL协议为了解决以下风险而设计:
- 所有信息都是加密传播,第三方无法窃听
- 具有校验机制,一旦被篡改,通信双方都会立刻发现
- 具备身份证书,防止身份被冒充
稍作解释:
- 首先客户端传递一条握手信息给服务端,包含一个随机数1、加密算法
- 服务端收到后会响应一条握手信息给客户端,包含一个随机数2、匹配好的加密算法
- 服务端传递证书给客户端
- 客户端校验服务端的证书
<ol>
<li>验证服务端证书的数字摘要和服务证书解密之后的内容是否一致,是否被篡改</li>
<li>根据证书链主机查找 根证书默认会被植入 浏览器&操作系统 是否可信任列表</li>
</ol> - 客户端组装会话秘钥
根据number1,number2以及预主秘钥组装会话秘 钥 - 用公钥加密预主秘钥传递给服务端
- 服务端用私钥解密预主秘钥
- 服务端组装会话秘钥
- 客户端使用组装的会话秘钥发送一条加密消息到服务端,验证是否服务端能否接收客户端加密过的数据消息
- 服务端使用组装的会话秘钥发送一条加密消息到客户度,验证客户端是否能解析加密后的数据
(SSL连接建立完成)