[aida] HTTP optimizations: streaming everything, gzip compression

Janko Mivšek janko.mivsek at eranova.si
Tue Feb 5 18:20:58 CET 2013

Dear Aiders,

While watching an excellent presentation by Ilya Grigorik from Google
Web Fast Team:

	Faster Websites, Crash Course on Frontent Performance
	part1: http://parleys.com/#st=5&id=3648&sl=0
	part2: http://parleys.com/#st=5&id=3649&sl=1

I come to idea to implement few optimizations Ilya mentioned in his talk:

1. web page is now streamed to the browser to start sending as soon as
   possible so that browser can start fetching CSS and JS files listed
   in page header in parallel. Until now a whole page was first
   rendered before start sending.
2. gzip compression of page HTML and all other text resources like CSS
   and JavaScript. This reduces the load time substantially, usually
   about 5 times.

End result is more than twice faster page load time, both time until
page starts rendering on browser and overall load time. We are now below
250ms to the first byte time, which is nowadays a goal to regard your
site as a fast one. Note that this includes a DNS lookup time
(50-150ms), connection time (50-100ms) then content download.

Another achievements are 4 A on http://www.webpagetest.org:

	A First Byte Time
	A Keep-alive Enabled
	A Compress Transfer
	A Compress Images
	F Cache static
	X Content Delivery Network detected

This F cache static is such because we instruct browsers to cache images
only 24 hours. For a reason to more easy upgrade web apps without
needing instruct the users to reload pages. They just wait one day...

X Content Delivery Network, well, I'm not sure we would profit much to
use it except add another level of complexity ...

Google regards such optimizations in this pageRank algorithm, which is
one of the reasons to be worthwhile.

All those optimizations will be part of next Aida (and Swazoo) release,
it will also be soon on production server for http://www.aidaweb.si, so
that you can try by yourself :)

Best regards

Janko Mivšek
Smalltalk Web Application Server

More information about the Aida mailing list