HTTPS和HTTP有哪些区别
- HTTP 在 TCP 三次握手建立连接后即可发送报文,HTTPS 在 TCP 三次握手建立连接后还需要进行 SSL/TLS 的连接。
 - HTTP 的传输是明文传输,而 HTTPS 的传输是密文传输,安全性更高。
 - HTTP 的端口是 80,HTTPS 的端口是 443。
 - HTTPS 需要向 CA 申请证书,确保服务器身份的可信性。
 
HTTPS的工作原理(HTTPS建立连接的过程)
- 客户端向服务器发送 HTTPS 请求后,服务器会把自己的公钥证书发给客户端。
 - 客户端会检验服务器的证书是否由收信任的证书机构颁发,并检查证书的有效期。
 - 当客户端确认证书有效后,会随机生成一个对称加密密钥,用服务器的公钥进行加密,发送给服务器。
 - 服务器收到加密后的密钥后,用自己的私钥解密,从而得到对称密钥。
 - 以后的数据传输就由这个对称密钥进行加解密
 - TLS 还具有完整性检验机制,会检验传输的数据是否被篡改过。
 - 当传输完成后,对称密钥会被销毁,确保不留下痕迹。
 
TCP和UDP的区别
- TCP 是面向连接的,传输数据前需要先建立连接;UDP 是无连接的,不需要先建立连接。
 - TCP 是可靠的,保证数据包的顺序性和完整性;UDP 是不可靠的,不保证数据包的顺序性和完整性。
 - TCP 具有拥塞控制机制,能根据网络状况调节数据传输速率;UDP 不具有拥塞控制。
 - TCP 能通过滑动窗口机制进行流量控制,避免服务器接收不下的情况;UDP 不具有流量控制。
 - TCP 能检验超时或损坏的数据包并进行重传;UDP 不具有此特性。
 - TCP 的报文头比较复杂;UDP 的报文头比较简单。
 - TCP 由于其建立连接、数据校验等机制,性能开销比较大;UDP 性能开销比较小。
 - TCP 的适用场景:对可靠性要求高的场景,如网页浏览,文件传输;UDP 的适用场景:对可靠性要求不那么高的场景,如语音通话、视频会议。