Option A is the best option, B is second best. I recommended a change in Rocket since it's included in w2py (it would be a nice enhancement), and since this is an internal site and Vincent may not be a webserver guy, that may fit the bill more.
On Monday, April 22, 2013 11:35:23 AM UTC-7, Michele Comitini wrote: > > 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] <javascript:>> > >> 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] <javascript:>. >> 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.

