当我进行 http2 推送时,我向服务器发出请求?
Posted
技术标签:
【中文标题】当我进行 http2 推送时,我向服务器发出请求?【英文标题】:when i make an http2 push, i make an request to the server? 【发布时间】:2016-04-30 19:46:33 【问题描述】:我有一个带有 http2 的服务器,当某些客户端请求 index.html 时,我配置了 4 个图像的推送,并且它可以工作,但我在 apache 的 access_log 上看到客户端对图像提出了一些请求。这是正确的吗? 我的意思是,我认为access_log应该只有index.html的请求,客户端得到索引和推送图片的响应,而不是推送图片的请求。
这是我的 access_log 的内容:
127.0.0.1 - - [24/Jan/2016:14:33:30 +0100] "GET / HTTP/2" 200 290
127.0.0.1 - - [24/Jan/2016:14:33:30 +0100] "GET /images/pele.jpg HTTP/2" 200 299013
127.0.0.1 - - [24/Jan/2016:14:33:30 +0100] "GET /images/fault.jpg HTTP/2" 200 230215
127.0.0.1 - - [24/Jan/2016:14:33:30 +0100] "GET /images/zidane.jpg HTTP/2" 200 655296
127.0.0.1 - - [24/Jan/2016:14:33:30 +0100] "GET /images/cr7.jpg HTTP/2" 200 312883
【问题讨论】:
【参考方案1】:在我看来,从 mod_h2 源代码来看,推送资源的处理方式与处理前端 HTTP/2 请求的方式相同——通过服务器在合成的 http/1.1 请求中发送。
这就是为什么它会像从客户端进来一样被记录。
AFAICT,目前无法在日志中区分这些。
【讨论】:
以上是关于当我进行 http2 推送时,我向服务器发出请求?的主要内容,如果未能解决你的问题,请参考以下文章