[Python-ideas] HTTP compression support for http.server

Terry Reedy tjreedy at udel.edu
Thu Jul 20 15:11:38 EDT 2017

On 7/20/2017 3:15 AM, Pierre Quentel wrote:
> I have reported an issue in the tracker 
> (https://bugs.python.org/issue30576) and proposed a Pull Request on the 
> Github CPython repository (https://github.com/python/cpython/pull/2078) 
> to make http.server in the standard library support HTTP compression (gzip).

Full response on the issue.  Briefly

> I have been suggested to require feedback from core devs :
> - should HTTP compression be supported ?


> - if so, should it be supported by default ?

No, contrary to painfully wrought policy.

> It is the case in the PR, 
> where a number of content types, eg text/html, are compressed if the 
> user agent accepts the gzip "encoding"
> - if not, should the implementation of http.server be adapted so that 
> subclasses could implement it ? For the moment the only way to add it is 
> to modify method send_head() of SimpleHTTPRequestHandler

Add subclass.

> My opinion is that it should be supported : http.server is not meant to 
> be a full-featured HTTP server, but compression it is a basic and 
> normalized feature of HTTP servers, it is supported by most browsers 
> including on smartphones, it reduces network load, and it's very easy to 
> implement (cf. the Pull Request). For the same reason, I recently added 
> browser cache to http.server (PR #298 
> <https://github.com/python/cpython/pull/298>).
> I also think that it should be supported by default for the most common 
> content types (text/html, text/css, application/javascript...) ; the 
> implementation is based on a list of types to compress 
> (SimpleHTTPServer.compressed_types) that can be modified at will, eg set 
> to the empty list to disable compression.

Terry Jan Reedy

More information about the Python-ideas mailing list