🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
HTTP协议(HyperTextTransferProtocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传输协议。 https://mp.weixin.qq.com/s/6248kvGBEt-jAKDAYFQhoQ ## 总结 HTTP1.0: >浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接 HTTP1.1: >引入了持久连接,即TCP连接默认不关闭,可以被多个请求复用 在同一个TCP连接里面,客户端可以同时发送多个请求 虽然允许复用TCP连接,但是同一个TCP连接里面,所有的数据通信是按次序进行的,服务器只有处理完一个请求,才会接着处理下一个请求。如果前面的处理特别慢,后面就会有许多请求排队等着 新增了一些请求方法 新增了一些请求头和响应头 HTTP2.0: >采用二进制格式而非文本格式 完全多路复用,而非有序并阻塞的、只需一个连接即可实现并行 使用报头压缩,降低开销 服务器推送 **与HTTP 1.1相比,主要区别包括** - HTTP/2采用**二进制格式**而非文本格式 : 二进制协议解析起来更高效、“线上”更紧凑,更重要的是错误更少。 - HTTP/2是完全**多路复用**的,而非有序并阻塞的,只需一个连接即可实现并行,即每一个request都是是用作连接共享机制的。一个request对应一个id,这样一个连接上可以有多个request,每个连接的request可以随机的混杂在一起,接收方可以根据request的 id将request再归属到各自不同的服务端请求里面。 - **header报头压缩**: HTTP2.0使用encoder来减少需要传输的header大小,通讯双方各自cache一份header fields表,既避免了重复header的传输,又减小了需要传输的大小。 - **服务端推送**:HTTP/2让服务器可以将响应主动“推送”到客户端缓存中, 当浏览器请求一个网页时,服务器将会发回HTML,在服务器开始发送js、图片和CSS前,服务器需要等待浏览器解析HTML和发送所有内嵌资源的请求。服务器推送服务通过“推送”那些它认为客户端,将会需要的内容到客户端的缓存中,以此来避免往返的延迟。