« Home | perl editors » 

Monday, June 26, 2006 

HTTP Compression

Huh......
I was recently testing the page load times of different mail providers on a 28.8 kbps dailup.
It was boring as it was taking some time for the pages to load...

Until I started checking the times taken by Gmail .......Oh!! awesome ....
while others were taking considerable amount of time Gmail was very fast ......
Fast enough that for a 3 Mb txt attachment that others were taking around 90 sec, Gmail was taking just 10-11 sec .....(of course for other type of attchments like pdf it was almost simillar 10 sec less than other)

Normal html loading also was faster than others ..........

I tried to figure out the reason...Just to find that they have used technology to perfection......

1)They dont have many images and no flash at all ....every thing is text/html...

2)They were using http gzip compression that the browsers support (I think that this technology was there from more than 5 years** from now, but none of the other providers were using it). Here are headers for the 3mb attachment...

Response form Gmail for a 3mb attachment.
HTTP/1.1 200 OK
Cache-control: no-cache
Pragma: no-cache
Content-Type: text/html; charset=utf-8
Set-Cookie: GMAIL_RTT=EXPIRED; Domain=.google.com; Expires=Thu, 26-Jan-06 04:24:27 GMT; Path=/mail
Set-Cookie: GMAIL_LOGIN=EXPIRED; Domain=.google.com; Expires=Thu, 26-Jan-06 04:24:27 GMT; Path=/mail
Set-Cookie: S=gmail=pSBFaGg5drM:gmail_yj=vDbrDzjdUdU:gmproxy=UqLIudHgRn4; Domain=.google.com; Path=/
Content-Encoding: gzip
Transfer-Encoding: chunked
Server: GFE/1.3
Date: Fri, 27 Jan 2006 04:24:27 GMT

Headers for the contacts page request.

HTTP/1.1 200 OK
Cache-control: no-cache
Pragma: no-cache
Content-Type: text/html; charset=utf-8
Set-Cookie: GBE=EXPIRED; Expires=Thu, 26-Jan-06 04:28:27 GMT; Path=/mail
Set-Cookie: GMAIL_RTT=EXPIRED; Domain=.google.com; Expires=Thu, 26-Jan-06 04:28:27 GMT; Path=/mail
Set-Cookie: GMAIL_LOGIN=EXPIRED; Domain=.google.com; Expires=Thu, 26-Jan-06 04:28:27 GMT; Path=/mail
Set-Cookie: S=gmail=pSBFaGg5drM:gmail_yj=rv2s9ehL900:gmproxy=UqLIudHgRn4; Domain=.google.com; Path=/
Content-Encoding: gzip
Transfer-Encoding: chunked
Server: GFE/1.3
Date: Fri, 27 Jan 2006 04:28:27 GMT


3)Good use of ajax...they will just send the request for the data that is required ...if you click on contacts only one request will be sent to fetch the contacts and it response will be rendered with the existing side and top nav bars ........

If you want to know more about http compression check out this websites.......
http://www-128.ibm.com/developerworks/web/library/wa-httpcomp/
http://www.http-compression.com/

Kudos to google......

**I came to this conclusion after seeing http://www.vigos.com/ which was establised in 2000.