如何以特定请求头与Squid后站交互?
- By : Will
- Category : Forward Proxy
Forward Proxy
1 前言
一个问题,一篇文章,一出故事。
今天遇到WebView客户端使用Squid正向代理返回如下错误,
2025-12-15 13:18:04.914 32213-32213/org.cmdschool.squid D/OutlookWebActivity: [OUTLOOK-DEBUG]onReceivedError->https://res.public.onecdn.static.microsoft/officeonline/x/s/h09DAD7205E97DA4A__layouts/App_Scripts/MicrosoftAjaxDS.js 2025-12-15 13:18:04.914 32213-32213/org.cmdschool.squid D/OutlookWebActivity: [OUTLOOK-DEBUG]onReceivedError->-1: net::ERR_CONTENT_DECODING_FAILED
因此为解决此问题,我们发现有博主通过开启手机WebView的实验功能也能支持的Br压缩方式,详细如下,
adb shell am start -a "com.android.webview.SHOW_DEV_UI"
但是,本章找到另外一种方案,能跳过BR的压缩方式,于是整理当前章节。
2 最佳实践
2.1 Squid环境
2.2 WebView声明特定的请求头方案
2.2.1 确认当前通讯的压缩模方式
curl -v --compressed -x http://squid.cmdschool.org:3128 -H "Accept-Encoding: gzip, deflate, br" "https://res.public.onecdn.static.microsoft/officeonline/x/s/h40CC1720359C2E0F__layouts/App_Scripts/2057/excel-online-strings.new.min.js"
可见如下返回,
< Content-Encoding: br
2.2.2 声明客户端只支持特定的压缩方式
curl -v --compressed -x http://squid.cmdschool.org:3128 -H "Accept-Encoding: gzip" "https://res.public.onecdn.static.microsoft/officeonline/x/s/h40CC1720359C2E0F__layouts/App_Scripts/2057/excel-online-strings.new.min.js"
可见如下返回,
< Content-Encoding: gzip
2.3 Squid的修改请求头方案
2.3.1 修改客户端请求头
vim /etc/squid/squid.conf
增加如下指令,
request_header_replace
另外,
– 该指令需要使用编译选项“–enable-http-violations”才能支持
– 除了替换指令,你也可以尝试“request_header_xxx”等其他指令
另外,你可能还需要重载服务才能使配置生效,
systemctl reload squid
2.3.2 修改后站的响应头
vim /etc/squid/squid.conf
增加如下指令,
reply_header_replace
另外,
– 该指令需要使用编译选项“–enable-http-violations”才能支持
– 除了替换指令,你也可以尝试“reply_header_xxx”等其他指令。
另外,你可能还需要重载服务才能使配置生效,
systemctl reload squid
参阅文档
============
Squid的配置
————–
https://www.squid-cache.org/Doc/config/
开启手机WebView的实验功能
————–
https://www.jianshu.com/p/a97682d626d7
没有评论