[Seaside] Kom/Seaside/Apache, gzip?

Lukas Renggli renggli at gmail.com
Thu Mar 23 08:55:34 UTC 2006

> Gziping content makes a huge difference with our applications. Does
> Kom support this? If it does not appear that it would be a huge
> undertaking. Any pointers on where to begin ?

You could subclass WAKom and start with something like:

WAKomCompressed>>convertResponse: aResponse
	| response gzip stream |
	response := super convertResponse: aResponse.
	response fieldAt: 'Content-Encoding' put: 'gzip'.
	gzip := GZipWriteStream on: (stream := RWBinaryOrTextStream on: '').
	gzip nextPutAll: aResponse contents contents; close.
	^ response contents: stream reset

This code does not check if the user-agent supports compressed
responds, most todays user-agents do that anyway and one could add it

However I doubt that this will make the web-application any snappier,
I guess it is even much slower because the stream has to be copied to
a compressed one. After all the XHTML of Seaside is already quite
dense, there are no unnecessary spaces as with most other frameworks.

It is a bit trickier and requires some modifications to Seaside if you
want to directly stream you answer into a compressed stream, tough it
should be possible.

> Does anyone know if Apache can act a a gzip proxy ? Gziping non-ziped
> content served from seaside. Has any one done this? Any examples?

I never felt the need to do anything like that, the bottleneck is
usually the persistency backend or the domain-model itself, not the
network connection.


Lukas Renggli

More information about the Seaside mailing list