HTTP代理:
http代理宏原理:发请求到服务器,服务器转发出去
如何开发疑问:套接字连接了服务器,还怎么连接目的IP与端口?
答:浏览器使用TCP发送整个请求头数据到服务器,服务器再解析请求头,然后从请求头中拿到目的域名或IP进行访问
开发疑问:域名不是只能解析出IP而已吗?只有IP怎么确定端口号?
答:域名不包含端口号。HTTP代理服务器可以在客户端发送请求时,从请求头中获取目标主机的地址和端口号。当客户端通过HTTP代理服务器发送请求时,请求头中包含了目标主机的地址和端口号
在 HTTP 代理服务器中,代理服务器会解析客户端发送过来的请求头中的 URL,从中获取主机名和端口号,然后根据这些信息与远程服务器建立连接并转发请求。如果客户端请求头中没有明确指定端口号,则代理服务器会根据协议类型(HTTP 或 HTTPS)使用默认的端口号。
最后将结果转发回客户端;
socket5代理:使用TCP协议(套接字)发送数据到代理服务器,服务器再转发到目的服务器
开发疑问:套接字的目的IP和端口号要写服务器的地址和端口号才能发到服务器,那服务器转发到哪里呢?
该代理使用TCP协议又封装成了socket5协议,所以服务器解析该协议里的目的地址和数据来转发TCP数据
Socks5协议格式分为两个部分,握手协议和请求协议。
当客户端发送一个连接请求到Socket5代理服务器时,Socket5代理服务器会首先进行协议解析,确认客户端请求的类型和请求地址。
如果客户端请求的是一个普通的连接请求,Socket5代理服务器会解析出请求的目标地址和端口号,并向目标地址和端口号发起连接。在连接建立成功后,Socket5代理服务器会告知客户端连接已经建立成功,然后通过代理连接向客户端传递数据。
如果客户端请求的是一个UDP数据包请求,Socket5代理服务器会解析出请求的目标地址和端口号,并将该数据包发送到目标地址和端口号。
在连接建立成功后,Socket5代理服务器会转发客户端的请求到目标地址和端口号,并在转发过程中,对数据进行加密和解密,保证传输的安全性。
需要注意的是,Socket5代理服务器在连接建立成功后,会保持该连接,直到客户端关闭连接或超时断开连接。因此,Socket5代理服务器是基于长连接的代理服务器。