美文网首页游戏框架设计与优化之路
HTTP/2.0研究对游戏适用性研究

HTTP/2.0研究对游戏适用性研究

作者: 神奇的哈密瓜_35b8 | 来源:发表于2020-06-29 23:59 被阅读0次

HTTP2.0

HTTP/2(超文本传输协议第2版,最初命名为HTTP2.0),是HTTP协议的第二个主要版本。HTTP/2是HTTP协议自1999年HTTP1.1发布后的首个更新,主要基于SPDY协议。
HTTP2.0的特点是:在不改动HTTP语义、方法、状态码、URI及首部字段的情况下,大幅度提高了web性能。

HTTP站在TCP之上

理解http协议之前一定要对TCP有一定基础的了解。HTTP是建立在TCP协议之上,TCP协议作为传输层协议其实离应用层并不远。HTTP协议的瓶颈及其优化技巧都是基于TCP协议本身的特性。比如TCP建立连接时三次握手有1.5个RTT(round-trip time)的延迟,为了避免每次请求的都经历握手带来的延迟,应用层会选择不同策略的http长链接方案。又比如TCP在建立连接的初期有慢启动(slow start)的特性,所以连接的重用总是比新建连接性能要好。

帧(frame)和流(stream)。

帧是最小的数据单位,每个帧会标识出该帧属于哪个流,流是多个帧组成的数据流。
所谓多路复用,即在一个TCP连接中存在多个流,即可以同时发送多个请求,对端可以通过帧中的表示知道该帧属于哪个请求。在客户端,这些帧乱序发送,到对端后再根据每个帧首部的流标识符重新组装。通过该技术,可以避免HTTP旧版本的队头阻塞问题,极大提高传输性能。

多路复用的作用:

打开网页的时候
在 HTTP/1.1 协议中 「浏览器客户端在同一时间,针对同一域名下的请求有一定数量限制。超过限制数目的请求会被阻塞」。
传统的HTTP1.1打开页面时,需要请求多个资源,每个资源都要发送一个HTTP请求,这样会阻塞。


6E3511AC-9F01-498C-A226-9007F23798DE.jpg

HTTP2.0会在同一时间发送多个frame,每个frame有自己的流,每个流是一个请求,但是每个frame是乱序发送的,需要服务器来自己组装。


C6B41F55-F86A-49DE-ADBE-21C18CFBC31F.jpg

Headers的压缩

前面提到过http1.x的header由于cookie和user agent很容易膨胀,而且每次都要重复发送。http2.0使用encoder来减少需要传输的header大小,通讯双方各自cache一份header fields表,既避免了重复header的传输,又减小了需要传输的大小。高效的压缩算法可以很大的压缩header,减少发送包的数量从而降低延迟。

HTTP2.0结论

HTTP2.0和WS是两个不同的东西,WS是基于HTTP1.1之上的,并且阿里云SLB上的WS也是约束ECS后端需要采用HTTP/1.1
HTTP2.0和WS虽然都是用帧的方式来传输数据,但是他们有各自的帧格式,不能共用。
WS协议是一个HTTP/1.1的协议头握手之后,后面采用WS帧的格式来通信,主要用于长连接通信
HTTP2.0是将所有的Headers和body拆开来压缩之后,采用HTTP/2.0格式的帧来通信,并且会将这些帧乱序发送,相当于一个协议被拆解成多个乱序的帧,服务器收到帧之后,需要根据帧头部的SteamID来自行组装,最终组装成一个完整的协议。在 HTTP/1.1 协议中 「浏览器客户端在同一时间,针对同一域名下的请求有一定数量限制。超过限制数目的请求会被阻塞」。HTTP2.0的多路复用是为了解决web请求复数资源的问题
参考:
阿里云HTTP/2.0支持
HTTP/2.0相比HTTP1.1有什么改进

相关文章

  • HTTP/2.0研究对游戏适用性研究

    HTTP2.0 HTTP/2(超文本传输协议第2版,最初命名为HTTP2.0),是HTTP协议的第二个主要版本。H...

  • 网络优化

    最近对网络优化进行了一些研究,好些都没有去实践,所以做一个整理,以后慢慢研究 HTTP2.0 HTTP2.0新特性...

  • iOS网络深度优化总结

    最近对网络优化进行了一些研究,好些都没有去实践,所以做一个整理,以后慢慢研究 HTTP2.0 HTTP2.0新特性...

  • SSL对于游戏的适用性研究

    什么是SSL: (Secure Socket Layer,安全套接字层),为Netscape所研发,用以保障在In...

  • 纯银网易博客整理

    社区 WEB2.0枯燥研究手册『2005-2006』 WEB2.0枯燥研究手册[2007上半年] WEB2.0枯燥...

  • 研究“游戏”

    这几天在翻阅《游戏,让学习成瘾》。 目前重点关注的,是游戏在大脑中反映出来的奖励机制问题,以及游戏化如何在学习中应...

  • 463. 小心

    引用科学研究结论要小心谨慎,不能忽视研究背景,不然就会导致结论的适用性不强。 结论都是有前提的。

  • 深入剖析go中字符串的编码问题——特殊字符的string怎么转b

    前言 前段时间发表了Go中的HTTP请求之——HTTP1.1请求流程分析,所以这两天本来打算研究HTTP2.0的请...

  • HTTP header 的研究

    1.X-Frame-Options 使用 X-Frame-Options 有三个可选的值: DENY:浏览器拒绝当...

  • illusion游戏研究

    最近一直在研究i社的游戏,比如HoneySelect和VRKanojo,自从i社开始使用Unity引擎制作游戏后,...

网友评论

    本文标题:HTTP/2.0研究对游戏适用性研究

    本文链接:https://www.haomeiwen.com/subject/hubzfktx.html