- 39
- 0
Hey there,
我在Mac os-x 使用nginx自建证书,支持https/http2,使用nginx指令
http2_push_preload on;
http2_push /style.css;
推送给客户端style,但是在network面板里面看不到push的结果。通过netlog-views 查看请求发现:
33367 \[st=0\] HTTP2\_SESSION\_RECV\_PUSH\_PROMISE
--> :method: GET
:path: /style.css
:scheme: https
:authority: www.e.com
accept-encoding: gzip, deflate, br
accept-language: zh,en;q=0.9,zh-CN;q=0.8,zh-TW;q=0.7,da;q=0.6
user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10\_15\_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36
--> id = 3
--> promised\_stream\_id = 4
t=33367 \[st=0\] HTTP2\_SESSION\_SEND\_RST\_STREAM
--> description = "Duplicate pushed stream with url: https://www.e.com/style.css"
--> error\_code = "7 (REFUSED\_STREAM)"
--> stream\_id = 4
t=33367 \[st=0\] HTTP2\_SESSION\_RECV\_HEADERS
--> fin = false
--> :status: 200
server: nginx/1.17.1
date: Mon, 28 Oct 2019 12:53:50 GMT
content-type: text/html
content-length: 614
last-modified: Mon, 28 Oct 2019 12:18:43 GMT
etag: "5db6dca3-266"
accept-ranges: bytes
--> stream\_id = 3
这里奇怪的提示:
Duplicate pushed stream with
有两个疑问:
- 为什么Duplicate了呢?
- 为什么这帧的流id是4,但是请求的流id是3。
求解释~~
完整的log如下:
482506: HTTP2_SESSION
Start Time: 2019-10-28 20:53:50.036
t=33367 [st=0] HTTP2_SESSION_PING
--> is_ack = false
--> type = "sent"
--> unique_id = 1
t=33367 [st=0] HTTP2_SESSION_SEND_HEADERS
--> exclusive = true
--> fin = true
--> has_priority = true
--> :method: GET
:authority: www.e.com
:scheme: https
:path: /
cache-control: max-age=0
upgrade-insecure-requests: 1
user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36
sec-fetch-mode: navigate
sec-fetch-user: ?1
accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
sec-fetch-site: none
accept-encoding: gzip, deflate, br
accept-language: zh,en;q=0.9,zh-CN;q=0.8,zh-TW;q=0.7,da;q=0.6
--> parent_stream_id = 0
--> source_dependency = 483310 (HTTP_STREAM_JOB)
--> stream_id = 3
--> weight = 256
t=33367 [st=0] HTTP2_SESSION_RECV_PUSH_PROMISE
--> :method: GET
:path: /style.css
:scheme: https
:authority: www.e.com
accept-encoding: gzip, deflate, br
accept-language: zh,en;q=0.9,zh-CN;q=0.8,zh-TW;q=0.7,da;q=0.6
user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36
--> id = 3
--> promised_stream_id = 4
t=33367 [st=0] HTTP2_SESSION_SEND_RST_STREAM
--> description = "Duplicate pushed stream with url: https://www.e.com/style.css"
--> error_code = "7 (REFUSED_STREAM)"
--> stream_id = 4
t=33367 [st=0] HTTP2_SESSION_RECV_HEADERS
--> fin = false
--> :status: 200
server: nginx/1.17.1
date: Mon, 28 Oct 2019 12:53:50 GMT
content-type: text/html
content-length: 614
last-modified: Mon, 28 Oct 2019 12:18:43 GMT
etag: "5db6dca3-266"
accept-ranges: bytes
--> stream_id = 3
t=33368 [st=1] HTTP2_SESSION_RECV_DATA
--> fin = false
--> size = 614
--> stream_id = 3
t=33368 [st=1] HTTP2_SESSION_UPDATE_RECV_WINDOW
--> delta = -614
--> window_size = 15728008
t=33368 [st=1] HTTP2_SESSION_RECV_DATA
--> fin = true
--> size = 0
--> stream_id = 3
t=33368 [st=1] HTTP2_SESSION_PING
--> is_ack = true
--> type = "received"
--> unique_id = 1
t=33368 [st=1] HTTP2_SESSION_RECV_HEADERS
--> fin = false
--> :status: 200
server: nginx/1.17.1
date: Mon, 28 Oct 2019 12:53:50 GMT
content-type: text/css
content-length: 18
last-modified: Mon, 28 Oct 2019 12:18:01 GMT
etag: "5db6dc79-12"
accept-ranges: bytes
--> stream_id = 4
t=33368 [st=1] HTTP2_SESSION_RECV_DATA
--> fin = false
--> size = 18
--> stream_id = 4
t=33368 [st=1] HTTP2_SESSION_UPDATE_RECV_WINDOW
--> delta = -18
--> window_size = 15727990
t=33368 [st=1] HTTP2_SESSION_UPDATE_RECV_WINDOW
--> delta = 18
--> window_size = 15728008
t=33368 [st=1] HTTP2_SESSION_RECV_DATA
--> fin = true
--> size = 0
--> stream_id = 4
t=33368 [st=1] HTTP2_SESSION_UPDATE_RECV_WINDOW
--> delta = 614
--> window_size = 15728622 0
打赏
收藏
点击回答
您的回答被采纳后将获得:提问者悬赏的 10 元积分
- 共 0 条
- 全部回答
-
追尋☆①秒方向 普通会员 1楼
服务推送(Service Push)是Chrome浏览器的一项功能,它允许网站和服务向其他设备推送内容。然而,如果您的Chrome浏览器无法服务推送,可能是由于以下原因:
-
服务器配置问题:确保您的服务器配置正确,服务器需要能够处理HTTP/2协议。您可以在服务器上运行一些命令来检查HTTP/2的支持。
-
浏览器设置问题:在Chrome中,您可以在“设置”>“隐私”>“性能”>“安全”中找到“启用服务推送”选项,然后检查是否有任何设置阻止了服务推送。
-
兼容性问题:某些浏览器可能不支持HTTP/2协议,导致无法服务推送。您可以尝试更新浏览器到最新版本。
-
安全问题:如果您怀疑是安全问题导致的,您可能需要联系服务器提供商或网络服务提供商。
解决这个问题需要您对您的环境和网络进行检查,并根据需要进行相应的调整。如果您仍然无法解决问题,可能需要联系Chrome开发者团队寻求帮助。
-
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

