当前位置: 代码迷 >> 综合 >> HTTP1.1和HTTP2.0新特性
  详细解决方案

HTTP1.1和HTTP2.0新特性

热度:60   发布时间:2023-12-09 04:21:42.0

HTTP1.1

长连接

在http1.0时代,每发送一个http请求都会建立一个tcp连接,发送回响应后,连接就会关闭。而TCP连接的建立需要三次握手,极大的浪费了性能。同时一个连接的发起必须是在前一个连接的响应之后。
在http1.1中允许了长连接,当建立起一个tcp连接之后,多个http访问可以复用这个连接,是通过http请求头中的keep-alive来标识的。
其次,http1.1支持了连接的管道化。管道化使得连接请求可以“并行”的发送(并不是真的并行)。比如当我们请求一个index.html的时候,不必等到index.html返回我们就可以继续请求img资源。但是服务端还是按照FIFO来响应的。所以并不是真的并行
现在的浏览器都允许建立多个TCP连接来进行并行请求。但因为浏览器自身的Max-Connection最大连接数的限制,同一个域名(host)下能够建立的TCP数量是一定的。所以我们可以采用CDN将静态资源文件放在不同域名下来保证请求的速度。

宽带优化

在http1.0中,我们有时会对资源造成一定的浪费。比如有时我们只需要一个对象的一部分,我们却将整个资源都传过来了。
在http1.1中,增加了range头域,它允许只请求某个资源的一部分,返回码是206。方便了开发者自由的选择以便于充分的利用宽带。
http1.1支持head请求,也就是只有响应头,没用响应正文。

Host头处理

http1.1增加了host请求头字段,在http1.0中认为一个服务器绑定一个唯一的域名。但现在一台服务器上可以有多个虚拟主机,共享一个ip。