问题是:
我最近一直在为一个大型PHP+JS应用程序(通常是一个由PHP后端提供服务的基于主干的SPA )启用HTTP/2。虽然大多数资源加载正常,但在正常解析和下载之前,有两个请求被困在“停止”状态整整5分钟。
这两个请求是一个简单的后端XMLHttpRequest和一个字体文件请求。其他字体文件和后端请求加载正常,但当启用HTTP/2时,这两个文件将始终挂起。
调试信息:
以下是与Chrome开发工具中列出的字体文件请求相关的头文件:

...and这里是来自chrome://net-internals的输出,其中挂起发生在HTTP_TRANSACTION_READ_HEADERS (参见将近30000ms的dt ):

更多详细信息:
这个应用程序使用的是a build of apache2 that includes the mod_http2 module,而不是Ubuntu附带的标准版本的apache2。在最新版本的Firefox、Chrome和基于Ubuntu 16.04的Chrome测试版中也报告了相同的行为。
为了本地开发,所有的SSL都通过一个自签名的OpenSSL证书运行,该证书是由OpenSSL版本1.0.2j生成的。
还应该注意,所有其他成功的请求都是通过与主干相关的方法运行的,这些方法委托给jQuery的$.ajax,其中失败的XMLHttpRequest使用本机JS XMLHttpRequest对象。
谢谢你的帮助。
https://stackoverflow.com/questions/41247889
复制相似问题