-1

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

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

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

大多数情况下它运行良好,但(平均而言)供应商 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 上运行的任何东西都支持它吗?

4

2 回答 2

0

它看起来像一个 HTTP 隧道。

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

于 2015-01-26T18:16:35.243 回答
0

Signature Frantisek给我发了一封电子邮件,说明了这个错误的可能原因,一个 JRE错误,谢谢!综上所述,原因似乎是重用了 HTTPS 连接。

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

于 2015-09-03T20:03:43.113 回答