拥抱HTTP2.0时代 - HTTP2.0实现服务器端推送Push功能
在当今的移动互联开发趋势中,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功能的更多相关文章
- 09点睛Spring MVC4.1-异步请求处理(包含兼容浏览器的服务器端推送)
转发地址:https://www.iteye.com/blog/wiselyman-2215852 9.1 异步请求处理 Servlet 3开始支持异步请求处理 Spring MVC 3.2开始支持S ...
- APNS push server端 SSL3.0 转 TLS (iPhone苹果推送服务)
(转载此文,请说明原文出处) 苹果的官方公布 Update to the Apple Push Notification Service October 22, 2014 The Apple Push ...
- SignalR 聊天室实例详解(服务器端推送版)
翻译自:http://www.codeproject.com/Articles/562023/Asp-Net-SignalR-Chat-Room (在这里可以下载到实例的源码) Asp.Net Si ...
- 使用Pushlet将消息从服务器端推送到客户端
使用Pushlet来实现服务器端向客户端推送信息 1. 实现方式: 有两种实现方式: 1. 通过配置文件来实现定时的从服务器端向客户端推送信息 2. 通过API主动 ...
- **极光推送PHP服务器端推送移动设备消息(Jpush V2 api)
jpush.php 这是推送方法 用到curl发送请求 <?php /** * 极光推送php 服务器端 * @author yalong sun * @Email <syl_ad@1 ...
- Phonegap 极光推送api 服务器端推送代码
.net 版本 极光推送 后台接口 HttpWebResponseUtility类 using System; using System.Collections.Generic; using Syst ...
- SuperSocket主动从服务器端推送数据到客户端
关键字: 主动推送, 推送数据, 客户端推送, 获取Session, 发送数据, 回话快照 通过Session对象发送数据到客户端 前面已经说过,AppSession 代表了一个逻辑的 socke ...
- iOS 服务器端推送证书p12文件制作
A.苹果服务器地址: Production和development用的push的服务器不同pdev是:$apnsHost = 'gateway.sandbox.push.apple.com';pro是 ...
- HTML5服务器端推送事件 解决PHP微信墙推送问题
问题描述 以前的文章中<PHP微信墙制作,开源>已经用PHP搭建了一个微信墙获取信息的服务器,然后我就在想推送技术应该怎么解决,上一篇已经用了.NET 的signalr做了一个微信墙,PH ...
随机推荐
- POJ 2155 Matrix (D区段树)
http://poj.org/problem?id=2155 Matrix Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 1 ...
- 大虾翻译(一):jQuery.extend()
本文是在JavaScript之三里面链接内容的中文翻译.我会尽可能做到信达雅且保持作者原意不变,OK,let's Go! jQuery.extend(target,[object1],[objectN ...
- 十依据一个有用的算法来找到最小(最大)的k的数量-线性搜索算法
例如:进入1.2.3,4,5,6.7.8此8数字,最小的4图的1,2,3,4. 思路1:最easy想到的方法:先对这个序列从小到大排序.然后输出前面的最小的k个数就可以.假设选择高速排序法来进行排序, ...
- .NET反编译之Reflector
.NET反编译之Reflector 这几日由于公司需要, 看了些.NET反编译技巧,特地和大家分享下 .NET反编译工具很多,Reflector是其中一个很优秀的工具,所以就用它来进行反编译工作了.今 ...
- Docker container communication with ovs
2台宿主机,192.168.11153,192.168.1.154 安装OVS rpm -ivh openvswitch-2.4.0-1.x86_64.rpm #预先下载的 配置OVS 1. 按照上一 ...
- CentOS7 安装zookeeper
本章介绍CentOS的初始配置与zookeeper的安装. www.apache.org/dist/上可以下载Hadoop整个生态环境的组件,我下的Zookeeper3.4.6版本 我一般都是在一个虚 ...
- Redis源代码分析(十一年)--- memtest内存测试
今天,我们继续redis源代码test下测试在封装中的其它文件.今天读数memtest档,翻译了,那是,memory test 存储器测试工具..可是里面的提及了非常多东西,也给我涨了非常多见识,网上 ...
- Intel 80x86 寻址模式
随着进一步的研究,我们会逐渐接触到你的电脑配置模式的内在联系,和设计原则.在这些,解决计算机是一个非常重要的概念,我们需要很好地理解了什么. 一.预赛: (1)作数 在接触寻址方式之前,我们还要先了解 ...
- Oracle 11g XE 是 Oracle 数据库的免费版本
Oracle 11g XE 是 Oracle 数据库的免费版本,支持标准版的大部分功能,11g XE 提供 Windows 和 Linux 版本. 做为免费的 Oracle 数据库版本,XE 的限制是 ...
- 转让lua性能executeGlobalFunction
没有其他的,搞搞cocos2dx的lua文字,话lua这件事情在几年前学过一段时间.还曾对自己c++介面,我已经做了一些小东西.只是时间的流逝,模糊记忆. 拿起点功夫和成本.下面是我的一些经验. co ...