a. Use a full blown webserver like apache or nginx and configure it to gzip content on client request b. Use a simple wsgi gzipping filter.
For b. there is a simple and fast enough filter in wsgitools package. You can use it in anyserver.py or any place when calling the wsgi application as: from wsgitools.filters import WSGIFilterMiddleware, GzipWSGIFilter # filter web2py wsgi application wsgiapp = WSGIFilterMiddleware(gluon.main.wsgibase, GzipWSGIFilter) 2013/4/22 Derek <[email protected]> > Unless you are using IE lower than 5.5, all clients support gzip. Looks > like 'Rocket' doesn't though. You could modify the 'write' on line 1758 to > gzip files though. Just have to set the content-length and content-encoding > yourself. You could add in a check to see if it's supported... > > if 'gzip' in environ.get('HTTP_ACCEPT_ENCODING', ''): > #(if the http accept-encoding specifies gzip...) gzip it. > > here's how i do it with wsgi middleware, but it should work here with > rocket... of course, it wouldn't work if you were using gevent to serve (as > an example). You could just plug in a middleware though. I took this from > the pylons > tutorial<http://pylonsbook.com/en/1.1/the-web-server-gateway-interface-wsgi.html#altering-the-response> > ... > > buffer = StringIO.StringIO() > output = gzip.GzipFile( > mode='wb', > compresslevel=self.compresslevel, > fileobj=buffer > ) > I set compresslevel to 5, you could set it lower if you prefer speed to > filesize, that's up to you. I did find that I got the most size benefit > from compressing large json returns (like tables). However, I just set it > to compress everything except images, it seems to work great. > > > On Sunday, April 21, 2013 2:16:17 PM UTC-7, Ricardo Pedroso wrote: > >> You can not "blindly" gzip your data unless you control the clients. >> >> It's the client that tells if it can accept gzip content or not, >> and the web server will choose to gzip it or not. >> >> I will advice you to let this to the web server. >> >> But if you really want to gzip yourself, than you should take care of the >> request headers, specifically the Accept-Encoding one, ex: >> >> Accept-Encoding: gzip, deflate >> >> than if you gzip you should tell the client about it in the response >> headers with: >> >> Content-Encoding: gzip >> >> >> http://en.wikipedia.org/wiki/**HTTP_compression<http://en.wikipedia.org/wiki/HTTP_compression> >> >> Ricardo >> >> >> On Sun, Apr 21, 2013 at 9:59 PM, Vincent <[email protected]> wrote: >> > Hi, >> > >> > I want to return gzipped json content (although the json part is not >> really >> > important). >> > >> > I did some googling and found this post which is somewhat related, >> > https://groups.google.com/d/**msg/web2py/cgSrsC73vzg/**ZNYN3u7ChVwJ<https://groups.google.com/d/msg/web2py/cgSrsC73vzg/ZNYN3u7ChVwJ> >> > as far as I could tell the minify part of the question was answered but >> not >> > the gzipped part. >> > >> > I know some servers can compress, but I want to do the compression >> inside >> > web2py since my app may run on various server configurations. My >> objective >> > is to serve experimental data through a RESTful service. >> > >> > Basically, I am wondering if something like "generic.json.gz" already >> exists >> > built-in to web2py. Something that returns the gzipped form of the json >> of >> > the response. >> > >> > Does this already exist somewhere or do I need to write it myself? >> > >> > -- >> > >> > --- >> > You received this message because you are subscribed to the Google >> Groups >> > "web2py-users" group. >> > To unsubscribe from this group and stop receiving emails from it, send >> an >> > email to web2py+un...@**googlegroups.com. >> > For more options, visit >> > https://groups.google.com/**groups/opt_out<https://groups.google.com/groups/opt_out>. >> >> > >> > >> > -- > > --- > You received this message because you are subscribed to the Google Groups > "web2py-users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.

