使用PHP将多个HTTP 2.0流发送到客户端

时间:2015-02-10 08:33:14

标签: php stream http2

HTTP 2.0中的多重流方法似乎非常有趣。我想知道,如果今天可以与PHP一起使用吗?

它可以通过从不同的数据库查询发送不同的站点内容来加速php应用程序。

编辑:我的例子是通过在PHP中使用多线程同步线程(有许多好的库来实现这一点)来同时获取2个或更多站点内容并通过它发送(而不是程序执行)。

3 个答案:

答案 0 :(得分:2)

我相信今天在某种程度上是可能的。你可以configure mod_spdy with PHP。据称,您可以通过Apache配置中的标题按this article

宣传SPDY功能
Header set Alternate-Protocol "443:spdy/2"

Compatible browsers应该开始利用SPDY的好处而不改变你的PHP代码;但是我认为这只意味着你可以放弃CSS sprites,CSS / JS文件整合和域分片等。基本上所有的事情都是为了减少使用传统方法优化网站时的HTTP查询数量。

关于你的实际问题,

  

从不同的数据库查询中发送不同的网站内容

使用支持SPDY的服务器优化PHP站点的一个想法是通过大量的AJAX请求,因为它们都将通过单个HTTP连接神奇地中继(理论上)。一旦你有一个配置了PHP的mod_spdy服务器,这将需要一些测试,但基于我读过的所有内容,我认为可能就是这种情况。请参阅此主题和answer了解更多信息。

  

..如果你有一个高度互动的AJAX重型应用程序   小型查询和更新正在穿梭,SPDY提供了一个   优雅解决自然阻抗不匹配的交互性和   HTTP。

我不确定HTTP2模块是否可用,但假设有一个模块即将上市。在那之前,我的理解是mod_spdy是继续使用Apache的方法。还有options for Nginx以及其他可能用于PHP解决方案的服务器。

答案 1 :(得分:0)

虽然不是HTTP / 2 - PHP能够支持WebSockets,这允许您从不同的数据库查询发送不同的站点内容。

有一个名为'Ratchet'的PHP WebSocket库可以实现你想要做的事情:)

HTH

答案 2 :(得分:0)

Jetty Web服务器支持HTTP2和fastCGI到PHP。例如,我们的主站点webtide.com在jetty后面运行wordpress。

另请注意,Jetty使用的异步代理机制意味着即使使用HTTP2推送等功能,它们也会并行发生。例如,Jetty可能决定推送几个相关的资源,并且它们将被异步并行地发送到word press。