On 11/29/2018 2:10 PM, Andrew Svetlov wrote:
Neither http.client nor http.server doesn't support compression (gzip/compress/deflate) at all. I doubt if we want to add this feature: for client better to use requests or, well, aiohttp. The same for servers: almost any production ready web server from PyPI supports compression.
What production ready web servers exist on PyPi? Are there any that don't bring lots of baggage, their own enhanced way of doing things? The nice thing about the http.server is that it does things in a standard-conforming way, the bad thing about it is that it doesn't implement all the standards, and isn't maintained very well.
From just reading PyPi, it is hard to discover whether a particular package is production-ready or not.
I had used CherryPy for a while, but at the time it didn't support Python 3, and to use the same scripts behind CherryPy or Apache CGI (my deployment target, because that was what web hosts provided) became difficult for complex scripts.... so I reverted to http.server with a few private extensions (private because no one merged the bugs I reported some 3 versions of Python-development-process ago; back then I submitted patches, but I haven't had time to keep up with the churn of technologies Pythondev has used since Python 3 came out, which is when I started using Python, and I'm sure the submitted patches have bit-rotted by now).
When I google "python web server" the first hit is the doc page for http.server, the second is a wiki page that mentions CherryPy and a bunch of others, but the descriptions, while terse, mostly point out some special capabilities of the server, making it seem like you not only get a web server, but a philosophy. I just want a web server. The last one, Waitress, is the only one that doesn't seem to have a philosophy in its description.
So it would be nice if http.server and http.client could get some basic improvements to be complete, or if the docs could point to a replacement that is a complete server, but without a philosophy or framework (bloatware) to have to learn and/or work around.