APP使用HTTP2协议的一点小收获

Posted 虞大胆的叽叽喳喳

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了APP使用HTTP2协议的一点小收获相关的知识,希望对你有一定的参考价值。

前几天提到网络连接和ssl握手延迟,想到SLB已经配置支持HTTP/2了,就想确认下:

  • curl —http2  -I https://api.test.com

  • 启用了阿里云的日志服务-SLB,protorl参数返回了HTTP/2

阿里云日志服务也是一个好东西,有点类似于ELK,本来高峰期间发现峰值流量比较大,原来有个接口size比较大,直接占了30%的流量,优化后一下清净了。

对于优化来说,应该挑大头来解决,同时也要关注细节。

HTTP/2好处:

  • 多路复用,真正的并行请求

  • 支持服务器端push

  • 更小的header头,减少网络延迟

想证实客户端调用接口有没有走HTTP/2多路复用,由于服务器在SLB后面,走的是80端口,从服务器上抓包是看不出来了。

从前台选择使用wireshark抓取app HTTPS流量,遇到一个问题。

让同事在电脑装了个andriod模拟器(夜神多开器),可惜还是不能破解HTTPS流量,顺带温习了相关知识。

如果是RSA密钥交换,及时配置了私钥文件也不能解密;如果是DH密钥交换,模拟器不像浏览器支持SSLKEYLOGFILE变量,所以没法支持pre-master secret key解密方式。

总之目前没法看到具体的HTTP/2流量,具体参考https://www.comparitech.com/net-admin/decrypt-ssl-with-wireshark/。

不管是ios还是Andriod都有网络框架,比如okhttp,原来那么强大:

  • HTTP/2 support allows all requests to the same host to share a socket.

  • Connection pooling reduces request latency (if HTTP/2 isn’t available).

  • Transparent GZIP shrinks download sizes.

  • Response caching avoids the network completely for repeat requests.

也就是说至少会维护连接池功能,这样对服务器的压力就减少了很多,网络层的消耗就可以忽略不计了,用户体验也提高了不少,如果能用到多路复用,那就更棒了。

关于重复请求的cache功能感觉也很有意思,后续可以研究研究。

和后端开发相比,APP开发模式是完全不一样的。

以前也写过一篇,后面尝试看看,个人觉得能破解,但不能使用HTTP/2包,会降级为HTTP/1.1。

虽然不会开发APP,但还是希望有一种方式能够看到网络层的调用。

以上是关于APP使用HTTP2协议的一点小收获的主要内容,如果未能解决你的问题,请参考以下文章

刚接触SkyLine的一点小收获与感触

xss和实体编码的一点小思考

关于蚁剑反制深入的分析和利用的一点小思路

关于Ensp中路由器启动防火墙的一点小问题

每次回顾,总会有一点小收获!

http协议--Apache-Httpd服务基本配置-rpm安装-编译安装(HTTP2.2,HTTP2.4)