惭愧在公司官网上了 http2 ,有一部分注册 post 请求发送时返回错误 0x0 ,后来通过错误回调的统计发现大部分是 safari(好像还有 edge)出现这个问题, safari 能稳定复现, chrome 不能复现,关闭 http2 后 safari 不能复现。
具体就是,打开 http2 站点页面,等待几分钟不动(或看下面连接里说可以断网再连接上),接下来在页面上的操作,比如我们的注册是 ajax 的 post 请求会返回 0x0 错误,看 safari 的调试页面网络请求都没发。贴两个连接:
https://openradar.appspot.com/26406397
http://stackoverflow.com/questions/37309940/nginx-http-2-http-post-safari-error
猜测是 safari 的 http2 socket 超过 idle 后,即使有新请求也不会重新连接,直接报连接错误。。
这次给我的教训就是生产环境还是不要玩这类太新的东西了。。
@qgy18
具体就是,打开 http2 站点页面,等待几分钟不动(或看下面连接里说可以断网再连接上),接下来在页面上的操作,比如我们的注册是 ajax 的 post 请求会返回 0x0 错误,看 safari 的调试页面网络请求都没发。贴两个连接:
https://openradar.appspot.com/26406397
http://stackoverflow.com/questions/37309940/nginx-http-2-http-post-safari-error
猜测是 safari 的 http2 socket 超过 idle 后,即使有新请求也不会重新连接,直接报连接错误。。
这次给我的教训就是生产环境还是不要玩这类太新的东西了。。
@qgy18