X-Git-Url: http://sjero.net/git/?a=blobdiff_plain;f=src%2Fhttp.c;h=b7026cd8fa9f44bf4adb5ba593d50cf4cbd1530f;hb=75d04cadf54aa666672295a2920ce83852741884;hp=1aa9ef02b626ed61250e040be3748e05456511f2;hpb=e219e587b360fd81b3b19f281b93ad4491ec1a9e;p=wget diff --git a/src/http.c b/src/http.c index 1aa9ef02..b7026cd8 100644 --- a/src/http.c +++ b/src/http.c @@ -1619,7 +1619,13 @@ gethttp (struct url *u, struct http_stat *hs, int *dt, struct url *proxy, request_set_header (req, "Referer", (char *) hs->referer, rel_none); if (*dt & SEND_NOCACHE) - request_set_header (req, "Pragma", "no-cache", rel_none); + { + /* Cache-Control MUST be obeyed by all HTTP/1.1 caching mechanisms... */ + request_set_header (req, "Cache-Control", "no-cache, must-revalidate", rel_none); + + /* ... but some HTTP/1.0 caches doesn't implement Cache-Control. */ + request_set_header (req, "Pragma", "no-cache", rel_none); + } if (hs->restval && !opt.timestamping) request_set_header (req, "Range", aprintf ("bytes=%s-", @@ -2034,8 +2040,9 @@ read_header: } } - resp_header_copy (resp, "Transfer-Encoding", hdrval, sizeof (hdrval)); - if (0 == strcasecmp (hdrval, "chunked")) + chunked_transfer_encoding = false; + if (resp_header_copy (resp, "Transfer-Encoding", hdrval, sizeof (hdrval)) + && 0 == strcasecmp (hdrval, "chunked")) chunked_transfer_encoding = true; /* Handle (possibly multiple instances of) the Set-Cookie header. */