http1.0 1.1 2.0区别

转载:https://blog.csdn.net/linsongbin1/article/details/54980801/

1、HTTP1.0 1.1区别

(1)长连接

HTTP 1.0需要使用keep-alive参数来告知服务器端要建立一个长连接,而HTTP1.1默认支持长连接。

HTTP是基于TCP/IP协议的,创建一个TCP连接是需要经过三次握手的,有一定的开销,如果每次通讯都要重新建立连接的话,对性能有影响。因此最好能维持一个长连接,可以用个长连接来发多个请求。
(2)节约带宽

HTTP 1.1支持只发送header信息(不带任何body信息),如果服务器认为客户端有权限请求服务器,则返回100,否则返回401。客户端如果接受到100,才开始把请求body发送到服务器。

这样当服务器返回401的时候,客户端就可以不用发送请求body了,节约了带宽。

另外HTTP还支持传送内容的一部分。这样当客户端已经有一部分的资源后,只需要跟服务器请求另外的部分资源即可。这是支持文件断点续传的基础。
(3)HOST域

现在可以web server例如tomat,设置虚拟站点是非常常见的,也即是说,web server上的多个虚拟站点可以共享同一个ip和端口。

HTTP1.0是没有host域的,HTTP1.1才支持这个参数。

2、HTTP1.1 2.0区别

(1)多路复用

HTTP2.0使用了多路复用的技术,做到同一个连接并发处理多个请求,而且并发请求的数量比HTTP1.1大了好几个数量级。

当然HTTP1.1也可以多建立几个TCP连接,来支持处理更多并发的请求,但是创建TCP连接本身也是有开销的。

TCP连接有一个预热和保护的过程,先检查数据是否传送成功,一旦成功过,则慢慢加大传输速度。因此对应瞬时并发的连接,服务器的响应就会变慢。所以最好能使用一个建立好的连接,并且这个连接可以支持瞬时并发的请求。

关于多路复用,可以参看NIO epoll
(2)数据压缩

HTTP1.1不支持header数据的压缩,HTTP2.0使用HPACK算法对header的数据进行压缩,这样数据体积小了,在网络上传输就会更快。

(3)服务器推送

意思是说,当我们对支持HTTP2.0的web server请求数据的时候,服务器会顺便把一些客户端需要的资源一起推送到客户端,免得客户端再次创建连接发送请求到服务器端获取。这种方式非常合适加载静态资源。

服务器端推送的这些资源其实存在客户端的某处地方,客户端直接从本地加载这些资源就可以了,不用走网络,速度自然是快很多的。

最新文章

  1. NLB网路负载均衡管理器详解
  2. ORA-01438: 值大于为此列指定的允许精度
  3. __getattr__ 与动态属性
  4. javascript中apply、call和bind的区别,容量理解,值得转!
  5. Unity3d优化
  6. linux添加字体的过程
  7. Oracle11G登录时提示:ORA-12557: TNS:协议适配器不可加载
  8. 用KNN算法分类CIFAR-10图片数据
  9. CURL使用
  10. 【转】Flask安装
  11. 事务管理在三层架构中应用以及使用ThreadLocal再次重构
  12. cocos2d-js-v3.0-rc0 下 pomelo-cocos2d-jsb native web 配置
  13. AngularJs应用
  14. Maven下载、安装和配置(二)
  15. 从Trie树到双数组Trie树
  16. Innodb日志与事务
  17. Linux命令(十三)make_makefile基础
  18. gitlab的ssh key有2个
  19. Monent.js:强大的日期处理类库
  20. php英语单词大全95

热门文章

  1. xml声明中的standalone属性
  2. "/var/lib/mysql/mysql.sock"不存在解决办法
  3. noip 2013 提高组 Day2 部分题解
  4. Go第六篇之结构体剖析
  5. word2vec 中的数学原理详解(一)目录和前言【转】
  6. Linux进程间通信--使用信号量【转】
  7. POJ 2352 Stars(树状数组)题解
  8. 论文笔记之:Dynamic Label Propagation for Semi-supervised Multi-class Multi-label Classification ICCV 2013
  9. HDU 3065 病毒侵袭持续中(AC自动机(每个模式串出现次数))
  10. HDU 2242 考研路茫茫——空调教室(边双连通分量+树形dp+重边标号)