1、HTTP与HTTPS区别
HTTPS = HTTP + SSL/TLS
HTTPS 在HTTP的基础上加入了SSL/TLS协议,SSL/TLS 依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
- SSL安全协议
- HTTP 是超文本传输协议,信息是明文传输,存在安全风险的问题。
- HTTPS 则解决 HTTP 不安全的缺陷,在 TCP 和 HTTP 网络层之间加入了 SSL/TLS 安全协议,使得报文能够加密传输。
- 建立连接
- HTTP 连接建立相对简单, TCP 三次握手之后便可进行 HTTP 的报文传输。
- HTTPS 在 TCP 三次握手之后,还需进行 SSL/TLS 的握手过程,才可进入加密报文传输。
- 端口号
- HTTP 默认端口号是 80
- HTTPS 默认端口号是 443。
- CA证书
- HTTPS 协议需要向 CA(证书权威机构)申请数字证书,来保证服务器的身份是可信的。
2、SSL/TLS的工作原理
SSL 和 TLS 没有太大的区别,TLS 是基于 SSL 之上的(SSL 3.0 进一步升级,新版本被命名为 TLS 1.0)。
SSL/TLS的核心要素是非对称加密。非对称加密采用两个密钥——一个公钥,一个私钥。在通信时,私钥仅由解密者保存,公钥由任何一个想与解密者通信的发送者(加密者)所知。
使用 SSL/TLS 进行通信的双方需要使用非对称加密方案来通信,但是非对称加密设计了较为复杂的数学算法,在实际通信过程中,计算的代价较高,效率太低,因此,SSL/TLS 实际对消息的加密使用的是对称加密。