http0.9,1.1,2.0分析:
HTTP0.9,1.1,2.0分析:
HTTP/0.9:
第一个http协议,组成极其简单,在当时只允许发送发送get请求,返回的话也只有一种。不支持请求头,由客户端发送一个请求,然后由web服务器返回页面内容,连接关闭。如果页面不存在,也不会返回任何状态码。
HTTP/1.0:
相对于HTTP/0.9增加了下面几个特性:
- 请求与响应支持头部。
- 响应对象以一个响应状态码开始
- 响应对象不只限于超文本。
- 开始支持客户端通过POST方法向web服务器提交数据,支持GET、HEAD、POST方法。
- 支持长连接(但默认还是使用短连接)、缓存机制以及身份认证。
HTTP/1.1(目前最常用的http):
- 在HTTP/1.1中默认开启Connection:keep-alive
弊端:明文传输;传输没打散;头部太长;server端无法主动push。
HTTP2.0:
1.使用二进制传输
2.多路复用,每个数据流都拆分成很多互不依赖的帧,而这些帧可以交错(乱序发送),还可以分优先级。最后再在另一端根据每个帧首部的流标识符把它们重新组合起来。
3.头部压缩:HTTP/1.1的首部带有大量信息,而且每次都要重复发送。HTTP/2.0要求通讯双方各自缓存一份首部字段表,从而避免了重复传输。
4.服务端推送:服务端推送能把客户端所需要的资源伴随着index.html一起发送到客户端,省去了客户端重复请求的步骤。正因为没有发起请求,建立连接等操作,所以静态资源通过服务端推送的方式可以极大地提升速度。