当前HTTP/1.1协议已经走过了有20个年头了,面对现代WEB应用,特别移动应用的挑战,设计缺陷问题日益明显,以下将主要列出主要存在的五大问题
- 队头阻塞:在大多数情况下,浏览器获取资源都是多份的,HTTP/1.1并没有提供机制来同时请求所有的资源,在仅仅只有一个连接的时候(实际情况,现代浏览器可能针对单个域名建立多个连接,实现某程度并行),它需要发起请求,并等待响应.在这之后再发起下一请求,请求响应.即使HTTP/1.1有一个特性为管道化,允许发送一组请求,但是只能按照发送顺序依次接收响应;如果在请求应答过程中,出现任何的状况,剩下的所有请求都会被出现问题的请求应答之后,这就是"队头阻塞";
- 低效的TCP利用:TCP协议作为最可靠的协议之一,其核心就是拥塞窗口[拥塞窗口指的是在接收方确认数据包之前,发送方可以发出]的TCP包的数量];拥塞控制能防止过多的数据注入到网络中,避免网络过载.TCP中可以通过慢启动探索当前连接对应拥塞窗口的合适大小,即发送者发送数据的时候并非一开始注入大量数据到网络中,而是发送一个数据包进行测试,当得到确认回复后,额外发送一个未确认包,即得到一个确认回复,可以发送两个数据包,得到两个确认回复可以发送四个数据包,以几何形式增长便可很快到达协议规定的拥塞窗口规定,这时候连接进入拥塞避免阶段;这种机制需要往返几次才能得知最佳拥塞窗口大小,但往返几次所需的时间成本不可忽略;
- 臃肿的消息首部:HTTP/1.1能压缩请求内容,但是消息首部不能压缩;在现今请求中,消息首部占请求