Java独立代理程序

时间:2016-09-27 07:32:24

标签: java sockets proxy-server

我正在为浏览器制作代理应用程序。它只能使用标准库。到目前为止,我已经设法创建了服务器。尝试从客户端访问网页时,我会收到以下信息:

CONNECT gmail.com:443 HTTP / 1.1 用户代理:Mozilla / 5.0 Firefox / 49.0 代理连接:保持活着 连接:保持活力 主持人:gmail.com:443

我的问题是:用什么来处理请求?如何处理文件下载?

2 个答案:

答案 0 :(得分:1)

获得CONNECT命令后,请执行以下操作:创建上游连接,并返回相应的成功/失败响应。如果上游连接成功,您现在要做的就是同时复制两个方向的字节。端点将负责所有SSL问题,上传,下载等。您无需再担任其他角色。

答案 1 :(得分:-1)

代理的一般行为如下:

  1. 接收来自浏览器的请求
  2. 向实际服务器发出请求,必要时解决所有重定向
  3. 从服务器获取响应并将其传递给客户端
  4. 我没有遇到更改请求/响应标头,缓存等问题。

    现在,从上面开始,您正在与gmail.com refer建立SSL连接。

    浏览器实际上是在发送正确的请求,在这种情况下,您需要实现握手并连接到gmail,并使用HTTPS卸载SSL,并通过协商的SSL将接收到的响应发送给浏览器。

    建议使用HTTP而不是HTTPS,如果这不是生产分级系统并首先尝试概念