通过代理强制HTTP1.1而不是HTTP2(Charles)

时间:2016-09-15 14:19:01

标签: http proxy mapping http2 charles-proxy

由于我们将客户端更新为HTTP2,因此我将文件映射到本地资源时出现问题。我们通常使用Charles(App)执行此操作,但由于我们更新为HTTP2,因此我们遇到了一些错误。

它似乎缩短了文件,只加载了一小部分文件。然后查尔斯给出了一条失败消息说: 客户端在收到完整回复之前已关闭连接

我一直在寻找大型的互联网寻找答案,但还没有找到任何答案。

希望这里有一些聪明的头脑。

3 个答案:

答案 0 :(得分:2)

我们在Charles 4.1.2b2中解决了这个问题。请从https://www.charlesproxy.com/download/beta/

试用

请告诉我这是否能解决您的问题!我们计划很快推出这个版本,特别是一旦我们有更多用户确认解决方案。

答案 1 :(得分:0)

我发现一个解决方法是在启动Chrome时使用disable-http2标志。在MacOS中,终端命令为:

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --disable-http2

在Windows中,您可以使用--disable-http2选项更改启动的快捷方式。

答案 2 :(得分:-1)

正如您所说,自客户端更新后问题引发了,您是否要仔细检查相对于任何客户端缓存问题的所有点? (请参阅here关于Charles中的无缓存工具)

您可以使用"Upgrade header"强制更改http协议版本:

  

Upgrade头字段是HTTP / 1.1中引入的HTTP头字段。在交换中,客户端首先发出明文请求,然后将其升级为较新的http协议版本或切换到不同的协议。 必须由客户端请求连接升级,如果服务器要执行升级,则发送426升级所需的响应。然后,客户端可以使用适当的升级标头发送新请求,同时保持连接打开。