SPDY 多路复用使请求比 HTTP 慢
Posted
技术标签:
【中文标题】SPDY 多路复用使请求比 HTTP 慢【英文标题】:SPDY multiplexing makes requests slower than HTTP 【发布时间】:2015-05-01 00:14:21 【问题描述】:我有一个应用程序混合了网络请求、一些小项目 (~20kB) 和一些大项目 (>2mB)。如果我对 SPDY 的理解是正确的,SPDY 会在同一个连接上多路复用请求,因此如果较小的请求落后于较大的请求,它们可能会减慢速度。由于 OkHttp 还不支持请求的优先级,有什么办法可以防止这种情况发生吗?
我尝试使用 OkHttp 客户端处理小请求,使用另一个 OkHttp 客户端处理较大请求,但这似乎并没有解决问题,因为连接似乎在客户端之间共享。
【问题讨论】:
【参考方案1】:SPDY 中的多路复用将请求和响应交错,因此不会有任何调用阻塞另一个调用;它们都只是阻塞了可用带宽。
也就是说,可以创建两个OkHttp
实例,每个实例都有自己的连接池。
OkHttpClient okHttpClient = new OkHttpClient();
okHttpClient.setConnectionPool(new ConnectionPool());
【讨论】:
以上是关于SPDY 多路复用使请求比 HTTP 慢的主要内容,如果未能解决你的问题,请参考以下文章
除了多路复用和服务器推送之外,是啥让 http/2 比 http/1 更快?