【问题标题】:HTTP protocol errorHTTP 协议错误
【发布时间】:2015-01-26 16:01:30
【问题描述】:

我们正在针对由供应商托管的远程 Web 服务运行 Java,其中涉及到几个中间人。我们的 Java 代码(托管在 IBM WebSphere Application Server 上)很简单,如下所示:

URLConnection connection = url.openConnection();
...
connection.getOutputStream().write(...);

机器由 Cisco ACE 负载平衡器进行负载平衡,网络有两个 BlueCoat 代理在通往远程 Web 服务的途中。

大多数情况下它都可以正常工作,但(平均而言)供应商 Web 服务每天收到一次 HTTP CONNECT 而不是预期的 HTTP POST。这是来自错误 HTTP CONNECT 的访问日志的示例,其下方是典型且正确的 HTTP POST:

Mar 3 05:15:07 lon-vm-lb01/lon-vm-lb01 logger[28882]: aaa.bbb.ccc.ddd - - [03/Mar/2014:05:15:04 +0000] host.com "CONNECT host.com:443 HTTP/1.1" 403 13 "-" "Java/1.7.0" "-" 810 358 331
Mar 3 05:26:05 lon-vm-lb01/lon-vm-lb01 logger[28882]: aaa.bbb.ccc.ddd - - [03/Mar/2014:05:26:03 +0000] host.com "POST /url/path HTTP/1.1" 200 1842 "-" "Java/1.7.0" "-" 875645 1229 2114 

我们怀疑代理或负载均衡器,有人在 Cisco ACE 或 BlueCoat 上看到过这种情况吗?或者这实际上可能是我们的问题,连接突然尝试创建隧道? Java SE 或任何可能在 WAS 上运行的东西都支持它吗?

【问题讨论】:

    标签: java http proxy network-protocols http-tunneling


    【解决方案1】:

    它看起来像一个 HTTP 隧道。

    您可以在http://en.wikipedia.org/wiki/HTTP_tunnel查看它

    【讨论】:

      【解决方案2】:

      签名 Frantisek 向我发送了一封电子邮件,其中说明了此错误的可能原因,即 JRE bug,谢谢!综上所述,原因似乎是重用了 HTTPS 连接。

      (现在只需要让 IBM 修复 WebSphere,然后让我们的 SP 更新他们的臃肿软件。)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-07-31
        • 2018-05-12
        • 1970-01-01
        • 2018-01-17
        • 1970-01-01
        • 1970-01-01
        • 2021-06-13
        相关资源
        最近更新 更多