网络通信那些事

本文探讨网络通信中的HTTP代理协议原理,重点解释了隧道方式如何避免非法证书问题,以及代理服务器如何在两个TCP连接之间转发流量。同时提到了SOCKS5协议的基础知识,提供相关参考资料。
摘要由CSDN通过智能技术生成

0.目前主要先记录HTTP协议相关,至于传输层以下的协议通信过程相关以后补充,先挖坑。

1.HTTP proxy的协议通信原理

这个其实源自于一个问题,使用http proxy访问https网站时,为何不会报非法证书,认为这是一次中间人攻击的形式呢?

在没有了解隧道方式进行代理之前,以为是proxy做了一层类似NAT的操作,也即browser发SSL连接(TCP连接)请求给proxy-client后,proxy-server接收到proxy-client的请求,直接把源ip替换为自己的ip,发到目标站点,而目标站点返回TCP响应数据包给proxy-server后,proxy-server再把目标ip替换回自身ip,发给proxy-client,proxy-client再发给browser;

这个看起来通信链路是通的,但其实这样有个很致命的问题,那就是browser需要知道目标站点的ip,也即browser本地需要进行正确的DNS解析,那这就有点尴尬了,并且要能更改数据包的ip,这个还要涉及到类似(iptables之类使用netfilter的应用),开发难度将会大大提高,开始偏向于底层应用了;

而隧道方式进行代理的实现就很elegant了,核心就是proxy-server完成目标站点DNS解析和建立TCP连接(记为sock_fd=M),同时和browser建立TCP连接(借助proxy-client,也即和proxy-client建立TCP连接,记为sock_fd=N),则只需要在M和N转发流量即可,相当于在proxy-server自己两个fd之间透传流量;

具体来说,隧道方式进行代理下࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值