http协议总结

1.HTTP1.0九十年代就发布了,当时面向的环境是主要是一些请求简单html静态文件,内容是一些简单的文字、图片,请求网页时每次是发完一个请求并接收返回成功后开始下一个HTTP请求

2.九十年代末,预见着互联网大规模增长,网页交互越来越复杂,请求里面有大量图片、js、css、视频等,并且网络速度提高,优化后的HTTP1.1协议出现了,HTTP1.1除了一些细节的优化,

最明显的是默认开启久化连接(长连接)以及管道pipelining技术:

长连接是针对同一对客户端/服务器请求来说的,后续的请求和响应可以通过这个连接发送,tcp连接不会立即关闭,减少tcp连接,服务器端有超时、连接数配置

管道流水线技术(cpu在执行命令的时候也会使用流水线技术,增大命令处理的吞吐量)无须等待前一个请求返回就发送了下一个请求,可以一次发送多个请求,而在接收response返回时也必须按照

顺序接收,前一次请求阻塞了没返回就算后一次处理完了也会等待前一次阻塞请求处理完成返回,导致后面的请求都需要等待,这就是队头阻塞

3.谷歌的spdy请求优先级,重要的请求设置高优先级减少请求的阻塞,其它特性有压缩请求头,多路复用等

4.http2借鉴了spdy协议的实现,pipelining也可以同时发送多个请求,但不强调返回顺序,处理完多少返回多少,比如客户端发送a、b两个请求,b请求已经处理完毕,a请求只处理部分,会先返回a中已经

处理好的部分,接着回应b请求,a处理完成后再返回剩余部分,http2把请求/响应分成多个非连续块,并标记了每块属于哪个请求/响应

你可能感兴趣的:(http协议总结)