Visual LabINTERACTIVE LEARNING
计算机基础精校教程

HTTP 版本与 TCP / UDP

把连接复用、多路复用和传输层取舍放进同一张网络心智图中。

HTTPTCPUDP
入门预计 10 分钟查看源文 ↗

http1.0 http1.1 http2.0有什么差别?

  • http1.0和1.1的区别

Http 1.1引入keep-alive机制,多个请求使用同一链接,减少开销,增加了请求方法

http2.0版本引入多路复用,头部压缩,使用二进制传输,安全性增强,而非文本传输

提示

  1. 持久连接:HTTP 1.0使用短连接,每个请求/响应都需要建立新的连接。而HTTP 1.1引入了持久连接,允许多个请求/响应通过同一连接进行传输,减少了连接建立的开销,提高了性能。
  2. 流水线化:HTTP 1.1支持流水线化,即在一个连接上可以同时发送多个请求,而无需等待前面的响应。这样可以减少网络延迟,并提高并发性能。
  3. 请求方式:HTTP 1.0只定义了GET和POST两种请求方式,而HTTP 1.1新增了其他请求方式,如PUT、DELETE、HEAD等,增加了对更多操作的支持。
  4. 头部压缩:HTTP 2.0使用了HPACK算法对请求和响应的头部进行压缩,减小了传输的数据量,提高了效率。
  5. 多路复用:HTTP 2.0引入了多路复用的机制,允许多个请求/响应同时在一个连接上进行传输,解决了HTTP 1.x中的队头阻塞问题,提高了并发性能。
  6. 二进制传输:HTTP 2.0将数据以二进制格式进行传输,而不是像HTTP 1.x那样使用文本格式。这样可以更高效地解析和传输数据。

http1.1的keep-alive永久链接机制和http2.0的多路复用的区别?

HTTP/2.0 的多路复用和 HTTP/1.1 的 Keep-Alive 功能都旨在通过单个连接处理多个请求,但它们的实现方式有一些区别。

  1. 多路复用(Multiplexing):HTTP/2.0 引入了多路复用,允许将多个请求同时发送到服务器,而无需等待之前的响应返回。这意味着可以在单个TCP连接上并行发送和接收多个请求和响应,从而提高性能。每个请求都被分配一个唯一的标识符(Stream ID),并且通过共享连接的帧来传输。这样,在一个连接上可以同时进行多个交错的请求和响应,提供更高的效率和更低的延迟。
  2. Keep-Alive:在 HTTP/1.1 中,Keep-Alive 是使用持久连接的一种机制。它允许在单个 TCP 连接上发送多个 HTTP 请求和响应,而无需为每个请求建立新的连接。在发送完一个请求后,保持连接打开,以便在同一连接上发送下一个请求。这样可以减少连接建立和关闭的开销,并且提高了性能。然而,在 HTTP/1.1 中仍然存在队头阻塞(head-of-line blocking)的问题,即如果某个请求的响应较慢,它会阻塞后续的请求。

因此,主要区别在于多路复用在单个连接上可以同时处理多个请求和响应,而 Keep-Alive 运行在一个连接上依次发送请求和接收响应。多路复用减少了延迟并提高了效率,而 Keep-Alive 减少了连接建立和关闭的开销,但仍受到队头阻塞的限制。HTTP/2.0 的多路复用通常比 HTTP/1.1 的 Keep-Alive 在性能方面更优越。

即同一个链接 上多个请求和响应,http1.1是串行模式,会阻塞 、 http2.0是并行模式,不会阻塞

TCP和UDP之间的区别?

  1. 连接导向 vs. 无连接:TCP是一种面向连接的协议,通过建立可靠的、双向的通信连接来传输数据。UDP是一种无连接的协议,每个数据包都是独立的,发送方和接收方之间没有建立持久的连接。
  2. 可靠性:TCP提供可靠的数据传输,通过使用序列号、确认应答、超时重传等机制来确保数据的完整性和顺序性。UDP不提供可靠性保证,它仅将数据包尽最大努力地发送到目标地址,不会进行丢失重传或者重排序等操作。
  3. 有序性:TCP保证数据的有序传输,即发送的数据在接收端按照发送的顺序进行重组。UDP则不保证数据的有序性,接收端可能会以不同的顺序接收到数据包。
  4. 流量控制和拥塞控制:TCP具有流量控制和拥塞控制的机制,可以根据网络状况动态调整发送速率,防止数据丢失和网络拥塞。UDP没有内置的流量控制和拥塞控制机制,对网络条件变化不敏感。
  5. 数据量和延迟:TCP对数据进行分段传输,可以处理大量的数据。UDP每个数据包大小限制在64KB之内。由于TCP的可靠性机制和拥塞控制,它的传输延迟通常比UDP略高。
  6. 适用场景:TCP适用于需要可靠、有序传输的应用,如网页浏览、文件传输、电子邮件等。UDP适用于实时性要求较高、数据丢失可以容忍的应用,如音频/视频流媒体、在线游戏等。

简单总结:

  • tcp,有三次握手确保链接可靠性,数据有序传输,但有更高的延迟
  • udp,低延迟,无连接,不能确保数据传输的可靠性,有丢包概率