HTTP1.0、HTTP1.1、HTTP2.0、HTTP3.0 的区别
作者:互联网
一.HTTP1.0
1.只有三种请求头GET、HEAD、POST
2.每个域名同时最多建立4个连接,如果连接数>=4,其他请求,只能等待
3.每个连接,完成一个HTTP请求、响应后,就会被服务器断开
4.不支持断点续传
5.缓存策略单一,只有本地缓存
二.HTTP1.1
比1.0版本有哪些提升:
1.新增Put,Delete等方法 2.在HTTP1.0中主要使用header里的Expires来做为缓存判断的标准,HTTP1.1则引入了更多的缓存控制策略例如Cache-Control,Last-Modified/If-Modified-Since,Eag/If-None-Match等更多可供选择的缓存头来控制缓存策略。 3.支持断点续传功能,HTTP1.1则在请求头引入了range头域,它允许只请求资源的某个部分,即返回码是206(Partial Content),这样就方便了开发者自由的选择以便于充分利用带宽和连接。 4.Host头处理,在HTTP1.0中认为每台服务器都绑定一个唯一的IP地址,因此,请求消息中的URL并没有传递主机名(hostname)。但随着虚拟主机技术的发展,在一台物理服务器上可以存在多个虚拟主机(Multi-homed Web Servers),并且它们共享一个IP地址。HTTP1.1的请求消息和响应消息都应支持Host头域,且请求消息中如果没有Host头域会报告一个错误(400 Bad Request)。 5.长连接,HTTP 1.1支持长连接(PersistentConnection)和请求的流水线(Pipelining)处理,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟,在HTTP1.1中默认开启Connection: keep-alive,一定程度上弥补了HTTP1.0每次请求都要创建连接的缺点
请求流水线概念:
请求流水线Pipelining 多个HTTP请求原有流程: 1.发送请求1 2.等待请求1响应,等待期间,当前连接不能发其他请求 3.再继续发下一个请求 请求流水线Pipelining流程: 1.发送请求1 2.等待请求1响应,等待期间,如果有其他请求,会先发送这些请求 3.按照请求发送顺序,等待对应的响应,如果第一个请求服务器处理时间很长,即使后续请求处理时间很短,也只能先接收第一个请求的响应,其他请求的响应只能等待 请求流水线解决了,请求发送的效率;但是未解决请求响应的接收效率,这个情况叫做"线头阻塞(Head of line blocking)"
三.HTTP2.0
HTTP2.0做了一下改进
1.二进制分帧 2.首部压缩 3.多路复用 4.请求优先级 5.服务器推送
四.HTTP3.0
标签:HTTP1.0,HTTP1.1,缓存,请求,响应,HTTP3.0,连接 来源: https://www.cnblogs.com/hubaoxi/p/15910624.html