ste*_*eve 2 java sockets ssl http
我已经困扰了一段时间,现在试图让我的自定义代理在浏览器发送CONNECT请求时正确处理.为了简单起见,让我解释一下我是如何处理这个过程的.也许在那时,有人可以帮助澄清我做错了什么.
浏览器请求:
CONNECT google.com:443 HTTP/1.1 User-Agent:Mozilla/5.0(Windows; U; Windows NT 6.1; en-US; rv:1.9.2.18)Gecko/20110614 Firefox/3.6.18 GTB7.1代理连接: keep-alive主持人:google.com
响应我通过普通套接字发送回浏览器:
建立HTTP/1.1 200连接\ r \nProxy-connection:保持活动\ r \n\r \n
GET/Host:google.com
一旦我得到类似的东西,那么我可以与服务器建立我的安全套接字连接,并返回响应发送回浏览器.
你在正确的轨道上怎么想?只是在我发送连接后我没有收到任何其他消息.
我得到了那个请求并看到它的CONNECT所以我立即创建了一个响应"Connection Established"
一开始就错了.在上游建立连接之前,不应发送" 已建立连接".你骗你的客户!
我开始考虑它,因为我没有与浏览器建立SSL握手
无关紧要.完成后,就您而言,您将从客户端获得的下一件事是二进制.从这一点开始你应该做的就是复制字节.
您认为我需要通过端口8080关闭该套接字并在端口8080上建立新的SecureSocket
没有.
一旦我得到类似的东西,那么我可以建立我与服务器的安全套接字连接
错误.从客户端获取一些数据后,您应该通过与上游服务器的现有纯文本连接透明地发送数据.您不必自己使用SSL.
我没有足够的数据只有CONNECT才能进入服务器.
是的你是.当您被告知时,您应该形成上游连接,并告诉客户您已经实际执行此操作,而不是之前.
你在正确的轨道上怎么想?
没有.
只是在我发送连接后我没有收到任何其他消息.
这表明你还没有发送任何东西.NIO代码很棘手.write()API的返回代码是什么?
归档时间: |
|
查看次数: |
1023 次 |
最近记录: |