头部重写
Chute 可以在请求和响应头部被转发到服务器或客户端之前对其进行重写。
对于单个请求,可以应用多条规则。
示例:
[Header Rewrite]
^http://example.com header-add DNT 1
^http://example.com header-del Cookie
^http://example.com header-replace User-Agent Unknown
^http://example.com header-response-add X-Server rack3
^http://example.com header-response-del X-Powered-By
^http://example.com header-response-replace Server nginx
重写规则由 4 个部分组成:URL 正则表达式、操作类型、头部字段和值。
请求与响应头部
前缀为 header- 的操作应用于请求头部(从客户端到服务器)。前缀为 header-response- 的操作应用于响应头部(从服务器到客户端)。
header-add
向请求头部追加一个新的头部行,即使该头部字段已存在。
示例:
[Header Rewrite]
^http://example.com header-add DNT 1
修改前:
GET /index.html HTTP/1.1
Host: example.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30
Accept-Language: en-us
Accept-Encoding: gzip, deflate
修改后:
GET /index.html HTTP/1.1
Host: example.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30
Accept-Language: en-us
Accept-Encoding: gzip, deflate
DNT: 1
header-del
从请求头部中删除一个头部行。
示例:
[Header Rewrite]
^http://example.com header-del DNT
修改前:
GET /index.html HTTP/1.1
Host: example.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30
Accept-Language: en-us
Accept-Encoding: gzip, deflate
DNT: 1
修改后:
GET /index.html HTTP/1.1
Host: example.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30
Accept-Language: en-us
Accept-Encoding: gzip, deflate
header-replace
替换请求头部中的头部值。如果该头部字段不存在,则不会发生任何操作。
示例:
[Header Rewrite]
^http://example.com header-replace DNT 1
修改前:
GET /index.html HTTP/1.1
Host: example.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30
Accept-Language: en-us
Accept-Encoding: gzip, deflate
DNT: 0
修改后:
GET /index.html HTTP/1.1
Host: example.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30
Accept-Language: en-us
Accept-Encoding: gzip, deflate
DNT: 1
如果你想在头部字段存在时添加或替换一个头部行,你可以同时使用 header-add 和 header-del。
[Header Rewrite]
^http://example.com header-del DNT
^http://example.com header-add DNT 1