Merge pull request #96127 from fonsecas72/header-accept-encoding

HTTP Probe: Removes Accept-Encoding header from http probe
This commit is contained in:
Kubernetes Prow Robot 2020-11-10 19:49:48 -08:00 committed by GitHub
commit 87ed842fa3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 29 additions and 7 deletions

View File

@ -70,6 +70,7 @@ type httpProber struct {
// Probe returns a ProbeRunner capable of running an HTTP check.
func (pr httpProber) Probe(url *url.URL, headers http.Header, timeout time.Duration) (probe.Result, string, error) {
pr.transport.DisableCompression = true // removes Accept-Encoding header
client := &http.Client{
Timeout: timeout,
Transport: pr.transport,
@ -104,15 +105,12 @@ func DoHTTPProbe(url *url.URL, headers http.Header, client GetHTTPInterface) (pr
if _, ok := headers["Accept"]; !ok {
// Accept header was not defined. accept all
headers.Set("Accept", "*/*")
}
if headers.Get("Accept") == "" {
} else if headers.Get("Accept") == "" {
// Accept header was overridden but is empty. removing
headers.Del("Accept")
}
req.Header = headers
if headers.Get("Host") != "" {
req.Host = headers.Get("Host")
}
req.Host = headers.Get("Host")
res, err := client.Do(req)
if err != nil {
// Convert errors into failures to catch timeouts.

View File

@ -158,13 +158,37 @@ func TestHTTPProbeChecker(t *testing.T) {
handler: headerCounterHandler,
reqHeaders: http.Header{},
health: probe.Success,
accBody: "4",
accBody: "3",
},
{
handler: headerKeysNamesHandler,
reqHeaders: http.Header{},
health: probe.Success,
accBody: "Accept\nAccept-Encoding\nConnection\nUser-Agent",
accBody: "Accept\nConnection\nUser-Agent",
},
{
handler: headerEchoHandler,
reqHeaders: http.Header{
"Accept-Encoding": {"gzip"},
},
health: probe.Success,
accBody: "Accept-Encoding: gzip",
},
{
handler: headerEchoHandler,
reqHeaders: http.Header{
"Accept-Encoding": {"foo"},
},
health: probe.Success,
accBody: "Accept-Encoding: foo",
},
{
handler: headerEchoHandler,
reqHeaders: http.Header{
"Accept-Encoding": {""},
},
health: probe.Success,
accBody: "Accept-Encoding: \n",
},
{
handler: headerEchoHandler,