代码随想录 | 八股-HTTP安全与TCP连接
HTTPS和HTTP有哪些区别
- 加密性
- HTTP:数据明文传输,容易被窃听和篡改。
- HTTPS:在 HTTP 基础上增加了 SSL/TLS 加密层,数据传输安全。
- HTTP:数据明文传输,容易被窃听和篡改。
- 连接建立流程
- HTTP:TCP 三次握手后即可传输数据。
- HTTPS:TCP 三次握手后,还需进行 SSL/TLS 握手,协商密钥后才能加密传输数据。
- HTTP:TCP 三次握手后即可传输数据。
- 端口号
- HTTP:默认端口 80
- HTTPS:默认端口 443
- HTTP:默认端口 80
- 证书机制
- HTTP:不需要证书。
- HTTPS:需要向 CA 申请数字证书,验证服务器身份,防止伪造。
- HTTP:不需要证书。
HTTPS的工作原理(HTTPS建立连接的过程)
密钥交换
客户端发起HTTPS请求,服务器发送公钥证书给客户端。证书验证
客户端验证服务器证书是否由受信任的CA签发,并检查证书有效性。加密通信协商
客户端生成一个随机的对称加密密钥,用服务器公钥加密后发送给服务器。建立安全连接
服务器用私钥解密,得到对称加密密钥。此时双方拥有相同密钥,可以进行加密通信。数据传输
双方用对称加密密钥对数据进行加密传输,保证安全性。完整性校验
SSL/TLS协议还会对数据进行完整性校验,防止数据被篡改。结束连接
通信结束后,会话密钥被销毁,避免安全隐患。
TCP和UDP的区别
- 连接方式
- TCP:面向连接,传输前需建立连接(三次握手)。
- UDP:无连接,直接发送数据。
- TCP:面向连接,传输前需建立连接(三次握手)。
- 可靠性
- TCP:可靠传输,保证数据顺序和完整性,丢包会重传。
- UDP:不保证可靠性,可能丢包、乱序、不重传。
- TCP:可靠传输,保证数据顺序和完整性,丢包会重传。
- 流量与拥塞控制
- TCP:有流量控制(滑动窗口)和拥塞控制,能根据网络状况调整速率。
- UDP:没有流量和拥塞控制,发送速率固定。
- TCP:有流量控制(滑动窗口)和拥塞控制,能根据网络状况调整速率。
- 报文头部
- TCP:头部复杂,包含序列号、确认号等。
- UDP:头部简单,只有基本信息。
- TCP:头部复杂,包含序列号、确认号等。
- 性能开销
- TCP:机制多,性能开销大,延迟高。
- UDP:机制简单,开销小,延迟低。
- TCP:机制多,性能开销大,延迟高。
- 适用场景
- TCP:适合需要可靠传输的场景,如网页浏览、文件传输等。
- UDP:适合对实时性要求高的场景,如语音通话、视频会议等。
- TCP:适合需要可靠传输的场景,如网页浏览、文件传输等。