第116题 HTTP协议1.0和1.1和2.0有什么区别

HTTP1.1 串行/队头阻塞、HTTP2 单连接多路复用、HTTP3 基于 QUIC 的演进对比

  • HTTP1.0
    • 最基础的HTTP协议
    • 支持基本的GETPOST方法
  • HTTP1.1
    • 缓存策略 cache-control E-tag
    • 支持长链接 Connection:keep-alive 一次TCP连接多次请求
    • 断点续传,状态码206
    • 支持新的方法 PUT DELETE等,可用于Restful API写法
  • HTTP2.0
    • 可压缩header,减少体积
    • 多路复用,一次TCP连接中可以多个HTTP并行请求
    • 服务端推送(实际中使用websocket

补充(现代做法):现在还应补一句 HTTP/3。HTTP/2 虽在应用层做了多路复用,但底层仍是 TCP,一旦发生丢包,TCP 层的重传会阻塞这条连接上所有的流——即「TCP 队头阻塞」。HTTP/3 改用基于 UDP 的 QUIC 协议,把多路复用下沉到传输层,每条 stream 独立,单流丢包不再拖累其他流;同时把 TLS 1.3 握手与连接建立合并,0-RTT/1-RTT 建连更快,并支持连接迁移(切换 Wi-Fi/4G 不断连)。另外 HTTP/2 的「服务端推送」实际收益有限、主流浏览器已弃用,现代偏向用 <link rel=preload> / Early Hints (103) 替代。

连环问:HTTP协议和UDP协议有什么区别

  • HTTP是应用层,TCPUDP是传输层
  • TCP有连接(三次握手),有断开(四次挥手),传输稳定
  • UDP无连接,无断开不稳定传输,但效率高。如视频会议、语音通话
Last Updated:
Contributors: leeguooooo