这里使用代理不是目的,抓包和修改请求和响应数据才是目的,使用代理只是为了实现抓包这个目的。
无代理模式
数据直来直往,浏览还可以通过devtools查看到接口的请求和响应数据,但是客户端无法查看和修改数据,用时候出现问题,不知道是接口问题还是客户端问题。
代理模式
在实际的使用场景就是测试的过程中需要抓包,常用的抓包工具例如Charles和Fiddler都是以代理的模式进行工作的。
但是这个时候又出现了一个问题,代理切换问题,尤其是在安卓手机上,每次我都需要手动修改安卓手机的网络配置,这个过程的痛苦只有使用过的人才知道,更可怕的是没有人在意你的痛苦,没有比较好的方式能够提高这个操作效率,我曾经考虑过自己开发一个一键代理切换的app,后来就不了了之,直到我遇到WPAD和PAC的概念,我感觉另一种解决方案正在向我招手。
代理自动发现
pac是什么意思?
pac的英文全称为proxy auto configuration
参考:
代理自动配置(PAC)文件是一个 JavaScript 脚本,其核心是一个 JavaScript 函数,用来决定网页浏览请求(HTTP、HTTPS,和 FTP)应当直连目标地址,还是被转发给一个网页代理服务器并通过代理连接。
在pac文件安全可控的情况使用这种方式,可以通过修改pac的方式来切换代理。
最常用的使用方法是把pac放到http服务器上面,提供一个pac脚本的链接。
wpad是什么意思?
Web Proxy Auto-Discovery Protocol, or WPAD, is a technology which aids a web browser in automatically detecting the location of a PAC file using DNS or DHCP.
pac托管
当你了解了pac的概念的时候,你会发现你需要一个pac文件托管服务,而我写了一个pac编辑器+pac托管服务器,可以在公网上访问,非常的便捷