A gzip filter.
This filter may gzip the responses for any requests that aren't HEAD requests and specify an accept encoding of gzip.
It won't gzip under the following conditions:
- The response code is 204 or 304 (these codes MUST NOT contain a body, and an empty gzipped response is 20 bytes
- The response already defines a Content-Encoding header
- A custom shouldGzip function is supplied and it returns false
Since gzipping changes the content length of the response, this filter may do some buffering - it will buffer any
streamed responses that define a content length less than the configured chunked threshold. Responses that are
greater in length, or that don't define a content length, will not be buffered, but will be sent as chunked