You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/content/cli/forwarder_run.md
+20Lines changed: 20 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -217,6 +217,7 @@ Use the format:
217
217
- name; to set the header to empty value
218
218
- -name to remove the header
219
219
- -name* to remove headers by prefix
220
+
- %name to disable header name canonicalization for particular header name
220
221
221
222
The header name will be normalized to canonical form.
222
223
The header value should not contain any newlines or carriage returns.
@@ -227,6 +228,25 @@ The following example removes the User-Agent header and all headers starting wit
227
228
-H "-User-Agent" -H "-X-*"
228
229
```
229
230
231
+
#### Disabling header canonicalization
232
+
233
+
By default all headers received from a request are being canonicalized and this can not be disabled. In some rare cases
234
+
destination HTTP servers or load balancers break HTTP standards
235
+
and treat header names as case sensitive.
236
+
237
+
So if browser sends `header-a`, forwarder canonicalizes the name to `Header-A` and the target application breaks, because it expects different name. The "%" option allows to change particular header case if needed.
238
+
239
+
For example
240
+
241
+
```
242
+
-H "%header-a"
243
+
```
244
+
245
+
If any case form of provided header name exists in request it will be renamed to the exact form provided. In that case browser can send
246
+
`header-a`, forwarder will canonicalize it
247
+
to `Header-A` but this option will rename it back to `header-a`.
0 commit comments