网站首页 > 技术教程 正文
之前的文章,我们在JCEF例子中设置代理,进行js内容修改。如果有时只需要对指定的资源进行代理,那么可以使用pac,在jcef中可以如下设置:
builder.getJcefArgs().add("--proxy-pac-url=http://127.0.0.1:63860/assets/PAC/virhuiai.pac");
PAC 文件介绍
PAC(Proxy Auto Config)是一个自动代理配置脚本,最早由 Netscape Navigator 2.0 引入。此技术被广泛支持于各种浏览器和操作系统中。PAC 文件通过定义 JavaScript 函数 FindProxyForURL 来指导浏览器如何选择代理服务器或直接连接。
// proxy.pac
function FindProxyForURL(url, host) {
if (dnsDomainIs(host, '.public.example.com')) {
return 'PROXY 127.0.0.1:8080';
}
if (
shExpMatch(host, 'localhost') ||
shExpMatch(host, '127.0.0.1') ||
shExpMatch(host, '10.*') ||
shExpMatch(host, '192.168.*') ||
shExpMatch(url, 'https://gitlab.example-inc.com/*') ||
shExpMatch(url, 'https://oa.example-inc.com/*') ||
shExpMatch(url, 'https://mail.example-inc.com/*') ||
dnsDomainIs(host, '.example.com') ||
dnsDomainIs(host, '.test.com')
) {
return 'DIRECT';
} else {
return 'PROXY 127.0.0.1:8080';
}
}
具体如何编写可以参考
https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_(PAC)_file
PAC 文件编写完成后需要托管到静态文件服务器上,以便通过某个地址访问,比如
http://static.example.com/proxy.pac
PAC 文件示例
function FindProxyForURL(url, host) {
// return "PROXY 127.0.0.1:49408";
if (shExpMatch(host, "test.virhuiai.com")) {
return "PROXY 127.0.0.1:49408";
}
return "DIRECT";
}
这个 PAC (Proxy Auto-Configuration) 脚本定义了浏览器或应用程序如何自动选择代理服务器或直接连接。PAC 脚本是一个 JavaScript 函数,它决定了特定请求是否通过代理服务器,以及使用哪个代理服务器。以下是这个特定 PAC 脚本 FindProxyForURL 函数的详细解释:
- 函数定义: function FindProxyForURL(url, host) 是 PAC 脚本中的标准函数,它接收两个参数:url 和 host。其中 url 是完整的请求 URL,host 是请求的域名部分。
- 条件判断: 使用 if (shExpMatch(host, "test.virhuiai.com")) 进行条件判断。这里,shExpMatch() 是一个内置函数,用于字符串匹配。它检查 host 是否符合模式 "test.virhuiai.com"。如果匹配,说明请求是针对指定的域名。
- 代理设置: 如果条件为真(即请求的域名是 test.virhuiai.com),函数将返回字符串 "PROXY 127.0.0.1:49408"。这告诉浏览器或应用程序使用位于本地计算机(IP 地址为 127.0.0.1)的 49408 端口上的代理服务器。
- 直接连接: 如果条件不成立(即访问的不是 test.virhuiai.com),则函数返回 "DIRECT"。这意味着请求应该直接连接到目标服务器,不通过任何代理。
使用场景
这种 PAC 脚本通常用于测试和开发环境,特别是当开发者需要对特定域名进行特殊网络处理(如调试、流量捕获、修改请求或响应等)时。通过这种方式,可以确保只有目标域名的流量被代理,而其他流量则不受影响,保持正常访问。这种方法有效地隔离了测试环境和生产环境,减少了对用户正常使用的干扰。
- 上一篇: 代理ip地址怎么设置 代理ip地址是什么
- 下一篇: 电脑设置代理IP,上网怎么使用代理
猜你喜欢
- 2024-10-19 windows设置http代理 激活windows转到设置以激活怎么去掉
- 2024-10-19 360浏览器怎么设置代理IP?(内附教程)
- 2024-10-19 Win7系统电脑代理服务器的设置方法
- 2024-10-19 golang 代理设置和版本依赖管理 golang internal包
- 2024-10-19 手机wifi怎么设置ip代理 手机网络怎么设置代理
- 2024-10-19 如何在Chrome,Edge,Safari和Firefox中更改用户代理
- 2024-10-19 动态住宅ip代理,这样设置,解决网络安全和访问限制问题!
- 2024-10-19 如何在IDM中设置代理服务器? idm代理ua
- 2024-10-19 软路由设置代理IP的步骤有哪些 软路由设置代理ip的步骤有哪些方法
- 2024-10-19 设置git代理 git设置ssh代理
你 发表评论:
欢迎- 最近发表
-
- 数据存储硬盘 Intel S3710广州报4500元
- K2 Blackpearl软硬件配置推荐(k2pa2配置)
- Supermium 浏览器现在支持 Windows XP 和其他“古老”操作系统
- 广西用友T6V7.1安装企业管理软件安装说明
- 用友T6V7.1软件安装笔记(用友t6软件下载)
- 谈谈P2V迁移踩过的坑(p2v迁移工具window)
- 利用Python伪装女神电话,恶搞室友
- Android Studio安装超详细步骤(android studio 2020.3.1安装教程)
- 如何用LightningChart创建Android图表数据可视化应用程序(上)
- 程序高手如何学习安卓开发?(安卓软件开发自学教程)
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)