Open wenjianping opened 6 years ago
没有太懂你的意思,有对应的代码贴出来吗
我猜他的意思是,按照 RFC7231 4.3.6 CONNECT 的要求,当proxy接收到CONNECT后,不应该不管三七二十一都发一个200 回去。而是应该根据具体情况相应处理。比如如果有设置使用二级代理的话, 那就应该把CONNECT转发给二级代理做处理。
大佬我觉得应该是这里有问题(无论是否连接到后台服务器,就直接返回200了),HttpProxyServerHandle的channelRead方法。https代理应该是要等和后台服务器成功建立tcp连接才返回的 if ("CONNECT".equalsIgnoreCase(request.method().name())) {// 建立代理握手 status = 2; HttpResponse response = new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpProxyServer.SUCCESS); ctx.writeAndFlush(response); ctx.channel().pipeline().remove("httpCodec"); // fix issue #42 ReferenceCountUtil.release(msg); return; }
从方法实现看是直接返回成功,没有代理做socket连接。 实际测试socket协议走http代理不能连接