1、什么是HTTP 2.0

HTTP/2(超文本传输协议第2版,最初命名为HTTP 2.0),是HTTP协议的的第二个主要版本,使用于万维网。HTTP/2是HTTP协议自1999年HTTP 1.1发布后的首个更新,主要基于SPDY协议(是Google开发的基于TCP的应用层协议,用以最小化网络延迟,提升网络速度,优化用户的网络使用体验)。

2、与HTTP 1.1相比,主要区别包括

HTTP/2采用二进制格式而非文本格式
HTTP/2是完全多路复用的,而非有序并阻塞的——只需一个连接即可实现并行
使用报头压缩,HTTP/2降低了开销
HTTP/2让服务器可以将响应主动“推送”到客户端缓存中

3、HTTP/2为什么是二进制?

比起像HTTP/1.x这样的文本协议,二进制协议解析起来更高效、“线上”更紧凑,更重要的是错误更少。

4、为什么 HTTP/2 需要多路传输?

HTTP/1.x 有个问题叫线端阻塞(head-of-line blocking), 它是指一个连接(connection)一次只提交一个请求的效率比较高, 多了就会变慢。 HTTP/1.1 试过用流水线(pipelining)来解决这个问题, 但是效果并不理想(数据量较大或者速度较慢的响应, 会阻碍排在他后面的请求). 此外, 由于网络媒介(intermediary )和服务器不能很好的支持流水线, 导致部署起来困难重重。而多路传输(Multiplexing)能很好的解决这些问题, 因为它能同时处理多个消息的请求和响应; 甚至可以在传输过程中将一个消息跟另外一个掺杂在一起。所以客户端只需要一个连接就能加载一个页面。

5、消息头为什么需要压缩?

假定一个页面有80个资源需要加载(这个数量对于今天的Web而言还是挺保守的), 而每一次请求都有1400字节的消息头(着同样也并不少见,因为Cookie和引用等东西的存在), 至少要7到8个来回去“在线”获得这些消息头。这还不包括响应时间——那只是从客户端那里获取到它们所花的时间而已。这全都由于TCP的慢启动机制,它会基于对已知有多少个包,来确定还要来回去获取哪些包 – 这很明显的限制了最初的几个来回可以发送的数据包的数量。相比之下,即使是头部轻微的压缩也可以是让那些请求只需一个来回就能搞定——有时候甚至一个包就可以了。这种开销是可以被节省下来的,特别是当你考虑移动客户端应用的时候,即使是良好条件下,一般也会看到几百毫秒的来回延迟。

6、服务器推送的好处是什么?

当浏览器请求一个网页时,服务器将会发回HTML,在服务器开始发送JavaScript、图片和CSS前,服务器需要等待浏览器解析HTML和发送所有内嵌资源的请求。服务器推送服务通过“推送”那些它认为客户端将会需要的内容到客户端的缓存中,以此来避免往返的延迟。

最新文章

  1. Linux下java进程CPU占用率高分析方法
  2. osharp3使用经验:整合DbContextScope 文章 1
  3. [NOIP2009] 靶形数独(搜索+剪枝)
  4. Linux 配置主机名
  5. java线程控制、状态同步、volatile、Thread.interupt以及ConcurrentLinkedQueue
  6. django session
  7. Bootstrap的标题
  8. hdu 1021 Fibonacci Again(找规律)
  9. windows 环境下安装plpython语言环境到postgresql数据库
  10. [2014-08-18]初尝 AspNet vNext On Mac
  11. Java基础——数据类型
  12. python3列表
  13. 辽宁移动宽带体验及魔百盒M101s-2刷机
  14. Django:模板template(二)
  15. html input控件总结
  16. WCF学习分享2
  17. 深入了解PHP闭包的使用以及实现
  18. 数据库:mongodb与关系型数据库相比的优缺点zz (转)
  19. sql server数据库状态监控
  20. iOS 带箭头菜单选项弹窗LFPopupMenu

热门文章

  1. Nginx——静态资源服务器(一)
  2. SoapUI中Code多行显示设置
  3. 工作中常用到的JS校验
  4. idea项目文件名为红色的解决办法
  5. AutoIT:为文件夹下面的文件批量改名
  6. Memcache存储大数据的问题(大于1m)
  7. 【基于libRTMP的流媒体直播之 AAC、H264 解析】
  8. Image2Caption
  9. nodejs--JWT 在前后端分离中的应用与实践
  10. 【WIP】rails redis的使用