http\https\sockets代理的区别

首先我们先想像下,有一台电脑,装了代理软件、macos、chrome;

我们再明确下,http代理工作在应用层(TCP/IP模型中),仅支持http协议,sockets工作在会话层(OSI模型中是会话层,TCP/IP模型中可以理解为传输层和应用层中间的一个特殊层),支持所有应用层协议;

1.在代理软件打开代理,Chrome没有配置代理,macos没有配置系统代理时:

chrome没有检测到系统代理,自己也没有配置代理,于是直接和服务器进行通讯,发送http数据;

2.在代理软件打开代理,Chrome配置了代理软件的侦听地址,macos没有配置系统代理时:

1)配置的代理是http代理时:chrome将原请求的url和数据作为数据封装到http协议的数据字段中(有点绕,语句没毛病),此时新的http报文的目的地址是代理服务器的地址,代理服务器收到数据后进行再请求即可完成访问;

2)配置的代理是socks代理时:chrome将原请求的url和数据作为数据封装到socks报文中,然后通过tcp协议发送给代理服务器;

3.在代理软件打开代理,Chrome没有配置代理,macos配置了指向代理软件侦听地址的系统代理时:

chrome会自动读取系统代理的配置,因此若系统只配置了http代理或socks代理,情况和上述一样,若系统同时配置了http和socks代理,则由chrome选择使用哪个代理;

4.若代理软件打开代理,chrome配置了指向代理软件侦听端口的代理,macos系统配置了其他代理时:

chrome肯定是通过代理软件进行代理,再转发到代理服务器的;

5.若代理软件打开代理,chrome配置了指向代理软件侦听端口的代理,macos系统配置了其他代理时:

1)不管代理软件是什么代理,系统代理为什么代理,chrome都代理到代理软件,不通过系统代理

2)猜测:tor代理软件为socks代理,系统代理或有其他代理软件为socks代理时(tor代理软件可以自动发现本地的代理服务!),在tor浏览器中,tor浏览器先代理到tor代理,tor代理剥离出数据,如此,tor代理软件(此时是个客户端)会通过系统代理从目录服务器获取全球部分结点信息(此过程不是http请求,猜测是udp),然后随机选三个,交换秘钥,再进行正式的网站的访问,获得返回的数据后由tor代理再返回给tor浏览器;

综述就是:tor浏览器发出请求会通过tor代理,tor代理在从目录服务器获取结点需要通过系统代理,与跳板通讯时不需要通过系统代理(因为与跳板通讯很可能使用的是socks的代理方式通讯,这也解释了本地的tor代理(用的是socks5协议)监听默认的9150端口不仅给本地tor浏览器提供代理,同时给其他人当跳板用)

 

参考资料:https://wrfly.kfd.me/posts/socks%E4%BB%A3%E7%90%86%E5%92%8Chttp%E4%BB%A3%E7%90%86%E7%9A%84%E5%8C%BA%E5%88%AB/

https://www.xiongjunhan.com/archives/2354

https://blog.csdn.net/Extraordinarylife/article/details/52512860

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

THMAIL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值