代码随想录 | 八股-HTTP安全与TCP连接

HTTPS和HTTP有哪些区别

  1. 加密性
    • HTTP:数据明文传输,容易被窃听和篡改。
    • HTTPS:在 HTTP 基础上增加了 SSL/TLS 加密层,数据传输安全。
  2. 连接建立流程
    • HTTP:TCP 三次握手后即可传输数据。
    • HTTPS:TCP 三次握手后,还需进行 SSL/TLS 握手,协商密钥后才能加密传输数据。
  3. 端口号
    • HTTP:默认端口 80
    • HTTPS:默认端口 443
  4. 证书机制
    • HTTP:不需要证书。
    • HTTPS:需要向 CA 申请数字证书,验证服务器身份,防止伪造。

HTTPS的工作原理(HTTPS建立连接的过程)

  1. 密钥交换
    客户端发起HTTPS请求,服务器发送公钥证书给客户端。

  2. 证书验证
    客户端验证服务器证书是否由受信任的CA签发,并检查证书有效性。

  3. 加密通信协商
    客户端生成一个随机的对称加密密钥,用服务器公钥加密后发送给服务器。

  4. 建立安全连接
    服务器用私钥解密,得到对称加密密钥。此时双方拥有相同密钥,可以进行加密通信。

  5. 数据传输
    双方用对称加密密钥对数据进行加密传输,保证安全性。

  6. 完整性校验
    SSL/TLS协议还会对数据进行完整性校验,防止数据被篡改。

  7. 结束连接
    通信结束后,会话密钥被销毁,避免安全隐患。

TCP和UDP的区别

  1. 连接方式
    • TCP:面向连接,传输前需建立连接(三次握手)。
    • UDP:无连接,直接发送数据。
  2. 可靠性
    • TCP:可靠传输,保证数据顺序和完整性,丢包会重传。
    • UDP:不保证可靠性,可能丢包、乱序、不重传。
  3. 流量与拥塞控制
    • TCP:有流量控制(滑动窗口)和拥塞控制,能根据网络状况调整速率。
    • UDP:没有流量和拥塞控制,发送速率固定。
  4. 报文头部
    • TCP:头部复杂,包含序列号、确认号等。
    • UDP:头部简单,只有基本信息。
  5. 性能开销
    • TCP:机制多,性能开销大,延迟高。
    • UDP:机制简单,开销小,延迟低。
  6. 适用场景
    • TCP:适合需要可靠传输的场景,如网页浏览、文件传输等。
    • UDP:适合对实时性要求高的场景,如语音通话、视频会议等。