헤더 재작성
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
재작성 규칙은 URL 정규식, 작업 유형, 헤더 필드 및 값의 4부분으로 구성됩니다.
요청 vs 응답 헤더
header- 접두사가 붙은 작업은 요청 헤더(클라이언트에서 서버로)에 적용됩니다. header-response- 접두사가 붙은 작업은 응답 헤더(서버에서 클라이언트로)에 적용됩니다.
header-add
헤더 필드가 이미 존재하더라도 요청 헤더에 새 헤더 줄을 추가합니다.
예:
[Header Rewrite]
^http://example.com header-add DNT 1
Before:
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
After:
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
Before:
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
After:
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
Before:
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
After:
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