说下HTTP/1.0,1.1,2.0的区别,TCP与UDP的区别

说下HTTP/1.0,1.1,2.0的区别,TCP与UDP的区别,会么

HTTP/1.0:默认使用短连接,每次请求都需要建立一个TCP连接。它可以设置Connection: keep-alive 这个字段,强制开启长连接。
HTTP/1.1:a.引入了持久连接,即TCP连接默认不关闭,可以被多个请求复用。
          b.分块传输编码,即服务端每产生一块数据,就发送一块,用”流模式”取代”缓存模式”。
          c.管道机制,即在同一个TCP连接里面,客户端可以同时发送多个请求。
HTTP/2.0:a.二进制协议,1.1版本的头信息是文本(ASCII编码),数据体可以是文本或者二进制;2.0中,头信息和数据体都是二进制。
      b.完全多路复用,在一个连接里,客户端和浏览器都可以同时发送多个请求或回应,而且不用按照顺序一一对应。
      c.报头压缩,HTTP协议不带有状态,每次请求都必须附上所有信息。Http/2.0引入了头信息压缩机制,使用gzip或compress压缩后再发送。
      d.服务端推送,允许服务器未经请求,主动向客户端发送资源。
——————————————————————————————————————
(1)首先,TCP和UDP是TCP/IP体系结构中的传输层中很主要的两个协议,UDP的全称是用户数据报协议,TCP的全称是传输控制协议


(2)区别有五个方面:


    ①有无连接:
使用UDP协议的通讯双方是随时可以进行数据传输的,无需建立连接,而TCP是面向连接服务的,在传输数据的时候需要三次握手进行连接。四次挥手释放连接
    

②是否支持广播或多播
:UDP支持了广播、多播和单播的服务,而TCP只支持单播
    

③报文是面向字节流或报文段:
UDP是面向应用报文,UDP对应用层交下来的报文,既不会拆分,也不会合并。TCP是面向字节流的,应用程序与TCP交互是一次一个大小不等的数据块,发送方的TCP把应用进程交付下来的报文数据块,看成是无结构的字节流,它不      保证接收方收到的数据块和发送方发送的数据块具有对应大小关系。发送方TCP会将数据放入缓冲,等到可以发送的时候再发送, TCP会根据发送策略,发送给接受方


    ④首部:
UDP首部开销比较小,只有8字节,TCP最少首部为20字节,最大首部是60字节,主要因为他实现的功能比较多,实现可靠传输、拥塞控制、流量传输等等。
    

⑤可靠性
:UDP向其上层提供无连接不可靠传输服务,数据可能会发生丢失,误码,但是传输效率高。所以主要适用于传输效率要求相对高,对准确性要求相对低和实时性要求高的场景,比如视频会议(因为我们可以接受图像稍微模糊一点,声音稍微不清晰一点)、网络语音电话、广播通信(广播、多播),

TCP向其上层提供面向连接可靠传输服务,传送的数据无差错、不丢失、不重复、按序到达;主要适用于传输效率要求相对低,但对准确性要求相对高和要求可靠传输的应用,比如文件传输(当我们下载文件,希望得到的是完整的文件 ,而不仅仅是文件的一部分)、接受邮件、远程登录;

(3)有序性:
TCP传输数据有序,UDP不保证数据的有序性;


(4)TCP有流量控制和拥塞控制,UDP没有;
(5)TCP传输速度相对UDP较慢;
(6)TCP不保存数据边界,UDP保留数据边界;


  • 这篇文章讲的很详细,请看:HTTP与UDP的区别比较
  • 以下回答由chatgpt基于相关博客总结生成:

    HTTP/1.0,1.1,2.0的区别: HTTP协议(Hyper Text Transfer Protocol,超文本传输协议),是用于从Web服务器传输hypertext到本地浏览器的传送协议。 HTTP/1.0: 1.0版本较老,1996年发布,由于当时数据量不大,并没有使用持久连接,每次请求都需要重新建立TCP连接,因此效率比较低。 1.0版本的方式是每一次请求就建立一个到服务器的连接,并在请求响应结束后关闭,无法复用同一个连接来发送多个请求。

    HTTP/1.1: 1.1版本于1997年发布,是1.0版本的升级版,增加了持久连接、管道机制、host域的支持等,大幅度提高了请求响应效率。 1.1版本引入了长连接,避免每次请求都需要连接一次服务器,但长连接会占据资源。同时1.1版本在响应头加入了一个Connection字段,规定是否启用长连接,其中如果Connection设置为keep-alive则启用长连接,如果为close则关闭长连接。

    HTTP/2.0: HTTP2.0开始于2015年,是1.1版本的进一步升级。HTTP/2.0的主要目标是通过完全重写HTTP协议的数据传输方式,实现更高效的转输性能,提高页面加载速度和网络利用率 HTTP2.0性能提升的原因: 1.二进制协议:HTTP1.x的解析是基于文本,即http的头部和body都是以文本形式传输的,而HTTP/2.0采用了二进制流的传输方式,因此不需要像 HTTP/1.x 那样对消息进行解析,所以HTTP/2.0解析速度更快,传输数据更加高效。 2.多路复用:HTTP/2.0采用了多路复用技术,使用一个TCP连接可以传输多个HTTP请求,每个请求都有自己的ID,因此可以同时进行多个请求响应,而HTTP/1.x使用多个TCP连接传输,会导致建立和维护连接的开销大,效率低下。 3.头部压缩:HTTP/2.0采用了新的HPACK算法,对HTTP头信息进行压缩,减小需要传输的数据量,从而提高传输速度,降低延迟。

    TCP与UDP的区别: TCP(Transmission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据包协议)都是理论上的不可靠传输协议 TCP: 1. TCP面向连接,数据传输之前必须先建立连接。 2. TCP提供可靠数据传输,保证数据的顺序、完整性和可达性。 3. TCP全双工的服务方式,数据可双向传输,都组成独立的数据通道。 4. TCP传输速度较慢,只是服务质量相对比较高,适合对数据准确性和流量控制的要求较高的应用场景。

    UDP: 1. 无连接协议,可以直接发送数据。 2. 简单、高效,但是不提供可靠传输,可能出现丢包、错包、乱序等情况。 3. 没有拥塞控制机制,发送数据速度非常快,不适合对网络质量要求高的场景。 4. 数据传输之间不存在时序关系。适用于数据传输要求高速的应用场景,例如视频直播。

    我对这些内容有比较深入的了解,能够根据实际情况进行具体的解决方案。