云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

CDN_代理服务器是什么_多少钱

小七 141 0

加速节点.js使用HTTP/2服务器推送的应用程序

4月份,我们宣布通过HTTP Link报头支持HTTP/2服务器推送。我的同事John已经演示了在一个示例PHP应用程序中添加服务器推送是多么容易。CC BY 2.0图片由Nicky Fernandes提供我们想让它更容易地提高当代网站的性能节点.js. 我们开发了netjet中间件来解析生成的HTML并自动添加链接头。与示例Express应用程序一起使用时,您可以看到添加的标题:我们使用Ghost来支持这个博客,所以如果你的浏览器支持HTTP/2,你已经从服务器推送中获益而没有意识到!下面是更多信息。在netjet中,我们使用PostHTML项目通过一个自定义插件解析HTML。现在它正在寻找图像、脚本和外部样式表。您也可以在其他环境中实现相同的技术。将HTML解析器放在响应堆栈中有一个缺点:它会增加页面加载延迟(或"到达第一个字节的时间")。在大多数情况下,应用程序的其他部分(如数据库访问)会掩盖增加的延迟。然而,netjet包含一个由ETag报头键控的可调LRU缓存,允许netjet在已经解析的页面上快速插入链接头。但是,如果您正在设计一个全新的应用程序,您应该考虑将元数据存储在您的内容旁边的嵌入式资源上,完全消除HTML解析和可能增加的延迟。Netjet与任何节点.js支持类似Express的中间件的HTML框架。入门非常简单,只需将netjet添加到中间件链的开头。var express=要求('express');var netjet=需要("netjet");var root='/path/to/static/folder';快速().使用(netjet({缓存:{100:最大值}})).使用(快速静态(根目录)听着(1337);只需再做一点工作,您甚至可以在没有框架的情况下使用netjet。var http=require('http');var netjet=需要("netjet");var端口=1337;var hostname='localhost';var预加载=netjet({缓存:{最大值:100}});变量服务器=http.createServer(功能(req、res){预加载(req、res、功能(){住宅状态代码=200;资源集标题('Content-Type','text/html');res.结束('Hello World');});});服务器。侦听(端口、主机名、函数(){控制台.log('Server running at '+主机名+':'+端口+'/');});有关支持的选项的更多信息,请参阅netjet文档。看到被推的东西Chrome的开发工具可以很容易地验证您的站点是否使用了服务器推送。"网络"选项卡显示已推送的资产,其中"推送"作为启动器的一部分。不幸的是,如果资源被推送,Firefox的开发工具还没有直接公开。但是,您可以在页面的响应头中检查cf-h2-Push头,其中包含CloudFlare通过服务器推送向浏览器提供的资源列表。我们非常感谢您为改进netjet或文档所做的贡献。我很高兴听到人们在哪里使用netjet。Ghost和服务器推送幽灵就是这样一个令人兴奋的整合。在Ghost团队的帮助下,我集成了netjet,从0.8.0版开始,它就作为一个可选的beta版提供。如果运行的是Ghost实例,可以通过修改服务器的配置文件文件并将preloadHeaders选项添加到生产配置块中。生产:{网址:'https://my-ghost-blog.com',预压头:100,// ...}Ghost为Ghost(Pro)客户编写了一篇支持文章。结论使用netjet,您的节点.js现在,应用程序可以开始使用浏览器预加载,当与CloudFlare一起使用时,还可以使用HTTP/2服务器推送。在CloudFlare,我们很高兴能开发出有助于提高网站性能的工具。如果你觉得有趣的话,我们正在德克萨斯州的奥斯汀、伊利诺伊州的香槟、伦敦、旧金山和新加坡招聘。