1、HTTPS和HTTP有哪些区别
两者的主要区别在于安全性和数据加密:
- 加密层:
HTTPS
在HTTP
的基础上增加了SSL/TLS
协议作为加密层,确保数据传输的安全性。而HTTP
数据传输是明文的,容易受到攻击。 - HTTP 连接建立相对简单, TCP 三次握手之后便可进行 HTTP 的报文传输。而 HTTPS 在 TCP 三次握手之后,还需进行 SSL/TLS 的握手过程,才可进入加密报文传输。
- 端口:
HTTPS
通常使用端口443
,而HTTP
使用端口80。 - HTTPS 协议需要向 CA 申请数字证书,来保证服务器的身份是可信的。
2、HTTPS的工作原理(HTTPS建立连接的过程)
HTTPS
主要基于SSL/TLS
协议,确保了数据传输的安全性和完整性, 其建立连接并传输数据的过程如下:
- 密钥交换:客户端发起HTTPS请求后,服务器会发送其公钥证书给客户端。
- 证书验证:客户端会验证服务器的证书是否由受信任的证书颁发机构(
CA
)签发,并检查证书的有效性。 - 加密通信:一旦证书验证通过,客户端会生成一个随机的对称加密密钥,并使用服务器的公钥加密这个密钥,然后发送给服务器。
- 建立安全连接:服务器使用自己的私钥解密得到对称加密密钥,此时客户端和服务器都有了相同的密钥,可以进行加密和解密操作。
- 数据传输:使用对称加密密钥对所有传输的数据进行加密,确保数据在传输过程中的安全性。
- 完整性校验:SSL/TLS协议还包括消息完整性校验机制,如消息认证码,确保数据在传输过程中未被篡改。
- 结束连接:数据传输完成后,通信双方会进行会话密钥的销毁,以确保不会留下安全隐患。
3、TCP和UDP的区别
- TCP是面向连接的协议,需要在数据传输前建立连接;UDP是无连接的,不需要建立连接。
- TCP提供可靠的数据传输,保证数据包的顺序和完整性;UDP不保证数据包的顺序或完整性。
- TCP具有拥塞控制机制,可以根据网络状况调整数据传输速率;UDP没有拥塞控制,发送速率通常固定。
- TCP通过滑动窗口机制进行流量控制,避免接收方处理不过来;UDP没有流量控制。
- TCP能够检测并重传丢失或损坏的数据包;UDP不提供错误恢复机制。
- TCP有复杂的报文头部,包含序列号、确认号等信息;UDP的报文头部相对简单。
- 由于TCP的连接建立、数据校验和重传机制,其性能开销通常比UDP大;UDP由于简单,性能开销小。
- 适用场景:TCP适用于需要可靠传输的应用,如网页浏览、文件传输等;UDP适用于对实时性要求高的应用,如语音通话、视频会议等。