如何以特定请求头与Squid后站交互?

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环境

如何yum部署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

没有评论

发表回复

Forward Proxy
如何解决Squid TLS报错?

1 前言 一个问题,一篇文章,一出故事。 笔者的生产环境的Squid升级,遇到如下报错。 tail …

Forward Proxy
如何用Oracle Linux 9.x编译Squid 7.x?

1 基础理论 1.1 介绍 Squid是支持HTTP、HTTPS、FTP等协议的Web缓存服务器 1 …

Forward Proxy
如何设置Squid目域名访问控制?

1 前言 一个问题,一篇文章,一出故事。 由于笔者最近不希望某些软件随意访问互联网,于是设置域名的访 …