【问题标题】:HTTP Response QueryHTTP 响应查询
【发布时间】:2014-06-22 15:56:41
【问题描述】:

我的查询与我正在执行的实现有关。

当 HTTP 请求从客户端端口发送到服务器端口时,我了解 响应也被发送回同一个端口(端口到端口通信)。

在我的例子中,服务器正在将带有查询字符串的 URL 的响应转发到我们网络上的主机服务器。所以当我使用 URLConnection 对象的 InputStream 读取响应时,我得到的是与没有查询字符串的转发 URL 的登录页面对应的 HTML 内容。

我怀疑这是因为我们的主机服务器修改了 URL。

现在的问题是,在这种情况下,似乎有一个中间实体,它是我们的主机服务器,URL 被转发到。因此,当我在 InputStream 中读取响应(由服务器转发的 URL)时,我不确定以下 2 中哪一个是实际发生的场景:

1.) 直接从外部服务器读取响应(因为这是端口到端口的通信)

2.)从中间主机服务器收到的响应似乎是这种情况。

(如果第二种情况是正确的,中间主机服务器是否知道将响应正确转发到哪个客户端?)

URL url = new URL(httpsURL);
HttpsURLConnection urlConnection = (HttpsURLConnection) url
                .openConnection();
urlConnection.setRequestMethod("POST");
urlConnection.setDoOutput(true);
urlConnection.setDoInput(true); 
///
Omitting code for SSL
///
String urlParameters = "CCNumber=4111111111111111";
DataOutputStream wr = new DataOutputStream(urlConnection.getOutputStream());
wr.writeBytes(urlParameters);
wr.flush();
wr.close();

BufferedReader in = new BufferedReader(new InputStreamReader(
                urlConnection.getInputStream()));
String inputLine;
if (urlConnection.getResponseCode() == HttpsURLConnection.HTTP_OK){

 while ((inputLine = in.readLine()) != null) {
  System.out.println(inputLine);
 }
}

【问题讨论】:

  • 向我们展示您的客户端代码。
  • 附加客户端代码..响应只是HTML页面内容..

标签: java http url-rewriting


【解决方案1】:

您收到来自中间服务器的响应。

听起来您的中间服务器充当 (reverse) proxy server。当您向中间服务器发出请求时,它又向网络上的服务器发出请求(正如您所描述的那样)。但是,“真正的”服务器通常不知道请求是由您发起的。特别是,它不知道您的 IP 地址或您发送请求的端口。它知道的唯一事情是中间(代理)服务器的IP 地址和端口。另一方面,代理服务器仍然知道您发送请求的 IP 地址和端口。

因此,您将请求发送到代理,代理将其发送到“真实”服务器,真实服务器将其响应发送回代理,代理将其发送回给您。您和“真正的”服务器不直接相互通信。

【讨论】:

  • 答案很有帮助,但由于缺乏足够的声誉,我无法投票。我有 1 个问题。得到 i/p 流后,我调用 getURL() 方法找出重定向的 URL 以找出他们发送的查询字符串。但是,我得到的 URL 似乎是我的中间服务器发送的 URL,因为它在主 URL 后面附加了会话 ID 信息。有没有办法找出服务器发送的原始 URL 是什么。我是否需要在中间服务器上设置一个过滤器来拦截传入的 url 模式,这样我就可以访问 ext 发送的查询字符串。服务器。
  • 调用getUrl() 只返回您创建URLConnection 的URL(请参阅JavaDoc)。您无法找出代理服务器从“真实”服务器请求的 URL。但这正是代理的重点。就您所知,从客户端的角度来看,代理服务器真正的服务器...
猜你喜欢
  • 2013-10-25
  • 2012-11-06
  • 2023-03-17
  • 1970-01-01
  • 1970-01-01
  • 2016-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多