查看: 763|回复: 0

快速了解HTTP/2的游戏服务端的推送

[复制链接]

4783

主题

5079

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
18913

最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

发表于 2020-3-1 14:36:34 | 显示全部楼层 |阅读模式
快速了解HTTP/2的游戏服务端的推送 https://www.gmbbs.net/

1.前言
新一代HTTP/2协议的主要目的是提高游戏服务端的性能(参见《从HTTP/0.9到HTTP/2:一文读懂HTTP协议的历史演变和设计思路》中HTTP/2的介绍)。
以前版本的HTTP/2的报头是直接传输的文本,但是现在它是在压缩后传输的。事实证明,在同一个TCP连接中,游戏服务端只能在发送最后一个响应后发送下一个响应。现在,可以一起发送多个响应。
游戏服务端推送是HTTP/2协议中唯一需要开发人员自己配置的功能。其他功能由游戏服务端和浏览器自动实现,不需要开发人员关心。
愚蠢的网络编程导论(4):对HTTP/2游戏服务端推送的快速理解
3.传统的游戏服务端请求方法
下面是一个非常简单的游戏服务端文件索引。
该页面包含一个样式表css和一个图片文件example.png。为了呈现这个游戏服务端,浏览器将发出三个请求。
第一个请求是index.html:
获取/索引
在接收到这个请求后,游戏服务端将index.html发送到浏览器。
浏览器发现它包含样式表和图片,所以它发出了另外两个请求:
获取/样式
获取/示例
这是请求游戏服务端的传统方式。它有两个问题:
首先,至少需要两轮HTTP通信。
第二是在收到样式文件之前,游戏服务端会显示一个空白。一旦这段时间超过2秒,用户体验将非常糟糕。
4.传统方法的改进
一种解决方案是将外部资源合并到网络文件中,减少HTTP请求。例如,将样式表的内容写入
7.在Apache游戏服务端上的实现
Apache类似,您可以在配置文件httpd.conf或。htaccess:
8.游戏服务端推送的另一种实现方法:后端实现
上述游戏服务端推送需要写入游戏服务端的配置文件中。这显然是不方便的,每次修改服务时都必须重新启动,应用程序和游戏服务端的配置不应该混合在一起。
游戏服务端推送还有另一种实现方法,即后端应用程序生成HTTP响应的头信息链接命令。
当游戏服务端找到这个头信息时,它将推游戏服务端:
Link:rel=预载。as=样式
如果您想推送多个资源,请按如下方式编写。
如果要推送多个资源,请按如下方式编写:
您可以参考Go、节点和PHP的实现示例。
如果游戏服务端或浏览器不支持HTTP/2,那么浏览器将根据预加载和预加载指定的资源文件来处理头信息。
事实上,这个头信息是由预加载标准提出的,它的语法和as属性值都写在标准中。
9.缓存问题
游戏服务端推送有一个非常麻烦的问题。如果浏览器已经有了要推送的资源文件的缓存,那么推送就是浪费带宽。即使推送的文件版本已更新,浏览器也会优先使用本地缓存。
一个解决方案是只为第一次访问的用户打开游戏服务端推送。
下面是一个由Nginx 官方给出的例子,根据Cookie判断它是否是第一次访问:
10.使用HTTP/2游戏服务端推送带来的性能提升
游戏服务端推送可以提高性能。在线评估的结果是,当未打开此功能时,它比HTTP/2快8%,当所有资源都嵌入到游戏服务端中时,它比HTTP/1快5%。
愚蠢的网络编程导论(4):对HTTP/2游戏服务端推送的快速理解
可以看出,改进的程度不是特别高,大约几百毫秒。此外,不建议一次推送太多资源,这会降低性能,因为浏览器必须处理所有推送的资源。只推送CSS样式表可能是一个更好的选择。


【GM论坛[www.gmbbs.net]免责声明】
1、本站提供的所有资源仅供参考学习使用,版权归原著所有,禁止下载本站资源参与商业和非法行为,请在24小时之内自行删除!
2、本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。
3、若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。 我们不承担任何技术及版权问题,且不对任何资源负法律责任。
4、论坛的所有内容都不保证其准确性,完整性,有效性。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
5、用户使用本网站必须遵守适用的法律法规,对于用户违法使用本站非法运营而引起的一切责任,由用户自行承担
6、本站所有资源来自互联网转载,版权归原著所有,用户访问和使用本站的条件是必须接受本站“免责声明”,如果不遵守,请勿访问或使用本网站
7、本站使用者因为违反本声明的规定而触犯中华人民共和国法律的,一切后果自己负责,本站不承担任何责任。
8、凡以任何方式登陆本网站或直接、间接使用本网站资料者,视为自愿接受本网站声明的约束。
9、本站以《2013 中华人民共和国计算机软件保护条例》第二章 “软件著作权” 第十七条为原则:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。若有学员需要商用本站资源,请务必联系版权方购买正版授权!
10、本网站如无意中侵犯了某个企业或个人的知识产权,请告之,本站将立即删除。
   提问发帖求助请点此发帖 https://www.gmbbs.net/
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表