HTTP隧道

Java HTTP&Socksv5 隧道代理方案

北战南征 提交于 2019-12-06 16:38:39
一.名词解释 代理服务器: 通常意义上说的是,通过第三方途径到达目标服务器,以及和目标服务器通信的手段。 这种服务器同时具有客户端和服务端 的属性, 客户端用来和目标服务器交互 , 服务端用来和客户端交互 。 Tunnel: 隧道的意思,本篇指的是基于TLS/SSL的隧道代理通道 HTTP&SOCKS v5: HTTP和Socks v5不同于基于网络硬件的VPN技术,而是在应用层和传输层上实现的协议。对于非Tunnel模式下,前者是基于HTTP实现的透明代理,后者Socks v5直接基于TCP/UDP协议实现,也就是说,后者可以完成更多网络代理,如FTP,SSH,MAIL,SOCKET,HTTP等代理。前者可以实现的,后者完全可以实现,后者可以用在各种环境中,比如代理QQ聊天等,代理HTTP的ShadowSocks。 HTTP透明代理: HTTP可以代理非CONNECT的GET,POST,PUT,DELETE,OPTIONS等请求,这种称为透明代理,实现起来非常容易。 SOCKS v5透明代理: 默认情况下,SOCKS v5直接通过自身协议,而不通过TLS/SSL进行数据交换的问题。 二.HTTP&SOCKS v5隧道问题 HTTP&SOCKS v5隧道实质上说的是代理HTTPS或者其他TLS/SSL的网络请求,透明代理的实现如下。 [ 客户端 ] ----------------