【问题标题】:Java HTTPS Proxy and ConnectJava HTTPS 代理和连接
【发布时间】:2016-09-20 02:28:05
【问题描述】:

我的HTTPS 代理应该像这样工作:

  • 它应该建立一个ConnectionConnect
  • 它应该通过流量但不能修改它。
  • 所以它应该无法读取它。

我现在通过CONNECT 阅读了一些内容。但我并不真正了解它以及如何实现它。

我现在的问题是 CONNECT 究竟做了什么?CONNECT 是一个 HTTP 请求。但它所做的一切都是建立连接。但这对我有什么帮助?

我看不出如何使用它来实现我的目标。

问候

克里斯托夫

【问题讨论】:

  • 太宽泛了。这里有很多关于 HTTP 和 HTTPS 代理的现有问题,但是如果您还没有很好地了解 RFC 2616,那么这里不是开始的地方。
  • 感谢您,我的 HTTP 代理仍然可以工作 :-) 9.9 CONNECT 本规范保留方法名称 CONNECT 用于可以动态切换为隧道的代理(例如 SSL 隧道 [44]) .这就是我在谷歌 RFC2616 上找到的。它对我没有帮助。
  • 你考虑过阅读其余部分吗?

标签: java https proxy connect


【解决方案1】:

您的第一个问题:CONNECT 到底是做什么的?

如您所说,CONNECT 是一种 Http 请求方法,用于 Client to Proxy server 中建立与服务器的连接>SSL 加密通信。一旦通过代理服务器从客户端到服务器建立连接,客户端将通过启动 TLS 握手将其升级为 TLS 连接。然后在客户端和服务器之间有一个直接的消息交换。这形成了从客户端到服务器连接的隧道方式之一。

这可能也回答了你的另一个问题:它对你有什么帮助?

正如您所说,您使用的是代理服务器。因此,您的客户端将通过 CONNECT 请求与您的代理服务器通信。收到此请求后,您的代理服务器将按照上述说明进行操作。

客户端------[连接请求]-----代理服务器-------- ------服务器

我认为它不会读取或修改您的任何数据,因为它仅用于建立与服务器的连接并传递流量。实际请求数据的发送和响应的获取是通过 HTTP GET 方法完成的。

如果您有更多疑问,请浏览以下链接:

(a)CONNECT request to a forward HTTP proxy over an SSL connection?

(b)When should one use CONNECT and GET HTTP methods at HTTP Proxy Server?

【讨论】:

  • 这听起来像我。我必须解析消息。获取请求类型。如果我收到 CONNECT。我必须创建一个套接字(地址,端口)。如果这项工作我将向客户端发送 HTTP1.1/200,以便他知道他现在可以开始通信。我所做的只是将请求发送到服务器并通过我的套接字向客户端发送响应。
  • 我不明白您所说的“解析消息”是什么意思。由于您正在通过安全套接字层连接处理代理服务器(您在问题中提到了 HTTPS),因此 CONNECT 请求方法是与服务器建立连接的方法之一。但我认为你已经正确地得到了后半部分,即从向客户端发送 200 OK 消息开始。我希望您已经浏览了提供的链接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-01
  • 1970-01-01
  • 2017-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多