在当今的移动互联开发趋势中,nghttp2是一个很值得大家去关注的一个开源项目。

我们在nghttpx模块中实现了HTTP/2服务器推送功能,并且在我们的nghttp2.org网站中启用了该推送功能。当你通过HTTP/2协议访问 https://nghttp2.org网站时,CSS文件/stylesheets/screen.css就会被推送到客户端。
nghttp2 blog

当你通过网络浏览器的调试功能观察该页面的加载过程的时候,你会发现有不少东西会冒出水面给你个惊喜:

大家可以看到图片中的 response 应答包头包含了一个 link: 的资源属性来发送额外的内容到浏览器客户端,而这个过程其实并不需要浏览器客户端主动的去请求的(因此这就需要对该DOM结构进行相应的解析了)。这向大家展示了真正的HTTP/2服务器推送功能了。

注意: 为了在你的浏览器调试界面的网络标签中显示出HTT/2协议信息, 请运行Chrome Canary这个版本的浏览器,详情请看http://ma.ttias.be/view-httpspdyhttp2-protocol-google-chrome/

这种服务器进行推送的方式所带来的好处是让下载stylesheet的过程更加快速。这你可以通过比较访问传统的HTTP/1.1网站和开启了服务器推送功能的HTTP/2的网站就很容易看出来了。

传统的HTTP/1.1页面加载

比如,以下图片显示的就是通过典型的传统HTTP/1.1协议方式访问我的博客网站时的流程。

从上图可以看到,在 GET / 这个请求发出后,就会需要等待大概20毫秒的时间去解析网页内容,然后才会开始对下一个资源 widget.css的请求。

启动了服务器推送的HTTP/2网页加载

相比HTTP/2的流程:

从中可以看到,DOM和其他额外的资源都不需要进行解析,客户端就已经可以下载 screen.css 这个资源了。这就不需要“浪费时间”在处理DOM和哪些额外的资源上面了,需要做的仅仅是发送另外一个请求到服务器端去把它们拿下来而已。

一旦你在你的一个页面中的所有资源都加上该功能后,你就很大可能为你的网站该网页的加载/渲染速度省掉100-200毫秒了。这些数据相信已经足够吸引你来实现HTTP/2功能了吧。

就响应速度和网页速度来说,HTTP/2将会给你带来巨大的惊喜--特别是当你使用了服务器端推送功能之后。

-----------------------完---------------------

引用英文连接:http://ma.ttias.be/service-side-push-http2-nghttp2/?s=hn

请尊重原创作/译者

微信知识共享公众号

CSDN

天地会珠海分舵

TechGoGoGo

http://blog.csdn.net/zhubaitian

拥抱HTTP2.0时代 - HTTP2.0实现服务器端推送Push功能的更多相关文章

  1. 09点睛Spring MVC4.1-异步请求处理(包含兼容浏览器的服务器端推送)

    转发地址:https://www.iteye.com/blog/wiselyman-2215852 9.1 异步请求处理 Servlet 3开始支持异步请求处理 Spring MVC 3.2开始支持S ...

  2. APNS push server端 SSL3.0 转 TLS (iPhone苹果推送服务)

    (转载此文,请说明原文出处) 苹果的官方公布 Update to the Apple Push Notification Service October 22, 2014 The Apple Push ...

  3. SignalR 聊天室实例详解(服务器端推送版)

    翻译自:http://www.codeproject.com/Articles/562023/Asp-Net-SignalR-Chat-Room  (在这里可以下载到实例的源码) Asp.Net Si ...

  4. 使用Pushlet将消息从服务器端推送到客户端

    使用Pushlet来实现服务器端向客户端推送信息 1.   实现方式: 有两种实现方式: 1.         通过配置文件来实现定时的从服务器端向客户端推送信息 2.         通过API主动 ...

  5. **极光推送PHP服务器端推送移动设备消息(Jpush V2 api)

    jpush.php  这是推送方法  用到curl发送请求 <?php /** * 极光推送php 服务器端 * @author yalong sun * @Email <syl_ad@1 ...

  6. Phonegap 极光推送api 服务器端推送代码

    .net 版本 极光推送 后台接口 HttpWebResponseUtility类 using System; using System.Collections.Generic; using Syst ...

  7. SuperSocket主动从服务器端推送数据到客户端

    关键字: 主动推送, 推送数据, 客户端推送, 获取Session, 发送数据, 回话快照 通过Session对象发送数据到客户端   前面已经说过,AppSession 代表了一个逻辑的 socke ...

  8. iOS 服务器端推送证书p12文件制作

    A.苹果服务器地址: Production和development用的push的服务器不同pdev是:$apnsHost = 'gateway.sandbox.push.apple.com';pro是 ...

  9. HTML5服务器端推送事件 解决PHP微信墙推送问题

    问题描述 以前的文章中<PHP微信墙制作,开源>已经用PHP搭建了一个微信墙获取信息的服务器,然后我就在想推送技术应该怎么解决,上一篇已经用了.NET 的signalr做了一个微信墙,PH ...

随机推荐

  1. KVO 其原理探究

    什么是KVO ? KVO这是Key-Value Observing,它提供了一种机制,指定的对象的属性被改动后,则对象就会接受到通知. 简单的说就是每次指定的被观察的对象的属性被改动后.KVO就会自己 ...

  2. 协议系列UDP协议

    所述上部TCP虽然该协议提供了一个可靠的传输,但也有一个缺点.发送速度慢.是否有协议它可以以高速传送?这部分是将要讨论UDP协议,它提供了更加快了传输速度.而且在可靠性为代价,这是一个无连接的传输协议 ...

  3. C、C++用指针引用的差异

    1:并引述之间的区别在概念的指针 参考是可变的别名.例如 int m; int &n=m; 引用作为一个别名.它在逻辑上不是独立的.它的存在具有依附性.所以引用必须在一開始就被初始化.并且其引 ...

  4. 页面中插入百度地图(使用百度地图API)

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWF5dW4wNTE2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA ...

  5. Gallatin(大陆版)Office365中Exchange Online混合部署功能已经能够使用了

    经过測试,Exchange混合部署已经能够使用了 前置条件: 本机至少须要一台Exchange Server 2013作为混合部署server 须要一个公网域名 domian.com,能够和内部域名不 ...

  6. ASP.NET Identity 身份验证和基于角色的授权

    ASP.NET Identity 身份验证和基于角色的授权 阅读目录 探索身份验证与授权 使用ASP.NET Identity 身份验证 使用角色进行授权 初始化数据,Seeding 数据库 小结 在 ...

  7. iOS:删除小程序

    //Applet的批次从父视图中移除 NSArray *subViews = [_scrollView subviews]; if([subViews count] != 0) { [subViews ...

  8. 基于PHP的crontab定时任务管理

    BY JENNER · 2014年11月10日· 阅读次数:6 linux的crontab一直是server运维.业务开展的利器.但当定时任务增多时,管理和迁移都变得非常麻烦,并且easy出问题.以下 ...

  9. AspNet.WebAPI.OData.ODataPQ实现WebAPI的分页查询服务-(个人拙笔)

    AspNet.WebAPI.OData.ODataPQ 这是针对 Asp.net WebAPI OData 协议下,查询分页.或者是说 本人在使用Asp.Net webAPI 做服务接口时写的一个分页 ...

  10. Android UI开发神兵利器之Android Asset Studio

    Android Asset Studio 这个工具提供了一系列的资源设计实现,很推荐: