在用fiddler的时候一开始觉得很厉害,但是不知道它是怎么实现拦截http信息的,后来去网上搜了一下,讲的都是,fiddler作为服务器和浏览器的中间件,接收浏览器或者其他程序发送给服务器的http请求,fiddler拦截这些信息,然后再把信息发送给服务器,服务器返回后,他在接收服务器返回的信息拦截后再发送给相应申请请求的浏览器或者其他程序;
这里就有一个问题了,为什么他能拦截?前面的这些东西学过计算机网络的人都能明白,搜之前也许已经想到了是这样,但是为啥它可以直接拦截呢;
这就需要操作系统的网络系统部分提供的代理功能了,一个系统包含网络部分的子系统,是可以控制流量发送给特定的端口的,这就是网络代理;比如浏览器设置代理,将该浏览器发送的所有数据都发送到特定ip,操作系统也可以设定把所有的流量不再发送给本来的端口,而是发送给特定的IP;我们一打开fiddler,他就开启了系统的代理功能,并设置了讲所有流量都发送给自己;
关闭它,他也会关闭系统的代理,这就是为啥不管是用自己写的程序比如python或者java发送http请求也会被拦截到,其实它拦截了所有的流量,只是只选择了http和https信息拦截,其他的不拦截直接放过;
这个软件的拦截就比fiddler更全了,他会拦截所有的tcp层的请求,不管是啥数据,它并不是代理拦截,而是修改系统的网卡模式,改为混淆模式,接收该电脑某个网卡收到的所有信息;