/browser-proxy

测试学习浏览器端代理

Primary LanguageJavaScript

browser-proxy

测试学习浏览器端代理

生产https证书

https://www.codercto.com/a/91174.html

注意: 本地调试必须使用http协议,否则会提示证书有问题

nodejs版本用的是19,因为低版本上没有支持header对象

jsproxy 是一个基于 JavaScript 实现的浏览器代理,主要的原理是通过在客户端使用 JavaScript 代码代替传统的 HTTP 代理服务器,将浏览器发出的 HTTP/HTTPS 请求通过 JavaScript 代码转发到代理服务器上,再由代理服务器代替客户端向目标服务器发出请求,从而实现代理的功能。相比传统的 HTTP 代理服务器,这种代理方式的好处是可以在不需要安装或配置代理服务器的情况下使用,具有更好的灵活性和易用性。

具体来说,jsproxy 实现浏览器代理的流程如下:

客户端访问代理网站:用户通过访问 jsproxy 提供的代理网站,将需要代理的网址输入到代理页面的地址栏中; 客户端 JavaScript 代码解析 URL:代理页面中的 JavaScript 代码会解析输入的 URL,将其拆分成协议、主机名、路径、查询字符串等部分; 客户端 JavaScript 代码发送请求:代理页面的 JavaScript 代码通过 AJAX 或 Fetch 等方式向代理服务器发出 HTTP/HTTPS 请求,请求中包含了需要访问的主机名、路径、查询字符串等信息; 代理服务器转发请求:代理服务器接收到客户端发出的请求后,将请求重新封装后,代替客户端向目标服务器发出请求; 目标服务器响应请求:目标服务器响应代理服务器发出的请求,返回响应结果; 代理服务器转发响应:代理服务器接收到目标服务器的响应后,将响应重新封装后,代替目标服务器向客户端发出响应; 客户端 JavaScript 代码处理响应:客户端的 JavaScript 代码接收到代理服务器发出的响应后,对响应进行解析、处理,并将结果显示在代理页面中。 总的来说,jsproxy 实现了一种基于 JavaScript 代码的浏览器代理方式,使得用户可以在不需要安装或配置代理服务器的情况下使用代理,具有一定的应用价值。

实现原理

首先页面请求基本路径,默认返回404,通过404页面加载sw文件与conf配置

conf文件通过配置加载index页面文件与浏览器代理文件

前端对于本地接口的重写使用vite进行编译