HTTPS和HTTP有哪些区别
两者的主要区别在于安全性和数据加密:
- 加密层:
HTTPS
在HTTP
的基础上增加了SSL/TLS
协议作为加密层,确保数据传输的安全性。而HTTP
数据传输是明文的,容易受到攻击。 - HTTP 连接建立相对简单, TCP 三次握手之后便可进行 HTTP 的报文传输。而 HTTPS 在 TCP 三次握手之后,还需进行 SSL/TLS 的握手过程,才可进入加密报文传输。
- 端口:
HTTPS
通常使用端口443
,而HTTP
使用端口80。 - HTTPS 协议需要向 CA 申请数字证书,来保证服务器的身份是可信的。
HTTPS的工作原理(HTTPS建立连接的过程)
HTTPS
主要基于SSL/TLS
协议,确保了数据传输的安全性和完整性, 其建立连接并传输数据的过程如下:
- 密钥交换:客户端发起HTTPS请求后,服务器会发送其公钥证书给客户端。
- 证书验证:客户端会验证服务器的证书是否由受信任的证书颁发机构(
CA
)签发,并检查证书的有效性。 - 加密通信:一旦证书验证通过,客户端会生成一个随机的对称加密密钥,并使用服务器的公钥加密这个密钥,然后发送给服务器。
- 建立安全连接:服务器使用自己的私钥解密得到对称加密密钥,此时客户端和服务器都有了相同的密钥,可以进行加密和解密操作。
- 数据传输:使用对称加密密钥对所有传输的数据进行加密,确保数据在传输过程中的安全性。
- 完整性校验:SSL/TLS协议还包括消息完整性校验机制,如消息认证码,确保数据在传输过程中未被篡改。
- 结束连接:数据传输完成后,通信双方会进行会话密钥的销毁,以确保不会留下安全隐患。