Http1.0、Http1.1、Http2.0区别

http1.0特点

http1.0主要用于一些简单的请求。

每个请求都要创建维护其对应的连接,且请求完之后都会关闭连接(短连接)。

主要通过header中if-modified-since/expires来进行缓存控制。

http1.1特点:

http1.1中增加了长连接(即当前请求结束后不关闭连接,后续请求仍可采用此连接进行),主要通过header中的connection属性(close/keepalive),减少了创建和维护连接的开销及等待的时间。

http1.1增加了多种状态码,比如409表示当前请求的资源与资源的状态发生冲突;401表示服务器的某个资源被永久性删除;100表示初始请求已被接受,客户端继续发送其余请求;405表示请求的方法错误或者不支持;414URI太长;504网关请求超时;505表示服务器不支持请求中指定的HTTP版本等;

http1.1缓存管理方面,新加了Etag、if-unmodified-since、if-no-match等缓存控制策略;

http1.1中添加了range头域(可请求服务器的部分资源),若客户端只需要获取某个对象的一部分,则可通过这个属性控制,服务器端不会像http1.0一样将整个对象都返回,减少了带宽的浪费;

http2.0特点

http2.0协议解析由原来的基于文本协议更改为基于二进制格式。由于文本类型的多样化,就要求考虑到各种场景的健壮性问题,而二进制则方便了很多;

http2.0采用多路复用的方式,多个request请求可以同时共享一个tcp连接,接收方通过request对应的id分配到对应的服务器端响应处理;

http2.0通过算法对header进行压缩,http1.1中header中存储大量数据且每次请求重复发送,2.0采用hpack算法进行压缩同时对header进行缓存,减小了数据传输的大小及避免了数据重复发送;

新增服务端推送功能,客户端像服务器端请求某资源,客户端获取到资源数据时,服务器端也将该资源文件推送到客户端进行缓存,下次可直接从缓存中获取不用重新进行请求;

长连接:当前请求结束后不关闭连接,后续请求仍可使用此连接(多个请求时仍需排队依次执行,可能会造成阻塞问题);

多路复用:多个请求可以同时共享一个连接,且某个请求出现问题不会造成其它请求阻塞问题。

 

posted @   梨。涡  阅读(231)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示