浏览器如何决定一个请求是用HTTP1还是HTTP2?
Posted wen_rc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浏览器如何决定一个请求是用HTTP1还是HTTP2?相关的知识,希望对你有一定的参考价值。
HTTP2众所周知的很方便,多路复用、二进制协议、优先级控制、服务器推送、头压缩,那在浏览器,怎么知道一个请求是用http1还是http2呢?
难道是先用http1试下,问问能不能upgrade,可以再升级到http2? 这样听上去很慢?要多一个请求。
或者浏览器本地存一个表,存的是服务器ip+请求url,记录哪些是支持http2的? 但这样开销似乎挺大的,不现实。
查文章才发现有这个说法
https://hpbn.co/http2/
在tls握手的时候就去协商能不能用http2,这样就不会造成浪费了,不过这也导致https看上去就跟http2绑在一起一样,事实上也是,chrome和firefox要用http2,都得是https。
国内也有大佬抓包分析过
https://imququ.com/post/protocol-negotiation-in-http2.html
以上是关于浏览器如何决定一个请求是用HTTP1还是HTTP2?的主要内容,如果未能解决你的问题,请参考以下文章
如何知道请求是使用 HTTP 1.x 还是 HTTP2 执行的