"When tied to other methods, such as proper caching configurations and the use of persistent connections, HTTP compression can greatly improve Web performance. In most cases, the total cost of ownership of implementing HTTP compression (which for users of some Web platforms is nothing!) is extremely low, and it will pay for itself in reduced bandwidth usage and improved customer satisfaction."
Stephen Pierzchala, Senior Technical Performance Analyst with Gomez, said this about HTTP compression:
Browsers and servers have brief conversations over what they'd like to receive and send. Using HTTP headers, they zip messages back and forth over the ether with their content shopping lists. A compression-aware browser tells servers it would prefer to receive encoded content with a message in the HTTP header like this:
GET / HTTP/1.1 Host: www.webcompression.org User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5) Gecko/20031007 Firebird/0.7 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9, text/plain;q=0.8,video/x-mng,image/png,image/jpeg,image/gif;q=0.2,*/*;q=0.1 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive
An HTTP 1.1-compliant server would then deliver the requested document with using an encoding accepted by the client. Here's a sample response from WebCompression.org:
HTTP/1.1 200 OK Date: Thu, 04 Dec 2003 16:15:12 GMT Server: Apache/2.0 Vary: Accept-Encoding Content-Encoding: gzip Cache-Control: max-age=300 Expires: Thu, 04 Dec 2003 16:20:12 GMT X-Guru: basic-knowledge=0, general-knowledge=0.2, complete-omnipotence=0.99 Content-Length: 1533 Content-Type: text/html; charset=ISO-8859-1
Now the client knows that the server supports gzip content encoding, and it also knows the size of the file (content-length). The client downloads the compressed file, decompresses it, and displays the page. At least, that is the way it is supposed to work.
Unfortunately, some early versions of Netscape 4 say they support ZLIB inflation when they really can't. Rather than rely on the content negotiation built into Apache and IIS, most webmasters install software specifically designed to make this conversation an amicable one. Products like mod_gzip, Vigos' Website Accelerator, PipeBoost, httpZip, and others offer configurable compression that can avoid browser quirks.
Joe Lima, COO and Head of Product Development at Port80 Software, said this about HTTP compression:
"HTTP compression provides such a clear benefit that it appeals to all kinds of users. Our customers include consumer sites that want to improve end-users' experience, hosting providers seeking to differentiate their offering, Fortune 500's looking to make a specific extranet application as bandwidth-efficient as possible, and many others. Simply put, compression is easy to deploy, widely supported, and saves money. Who could say no to that?"
Here are three examples from popular sites that use HTTP compression. Google and Orbitz both use gzip compression to deliver compressed versions of their pages to HTTP 1.1-compliant browsers. Table 1 shows the size of their home pages plus one search results page before and after compression.
|Home page||HTML Page Size (uncompressed)||HTML Page Size (compressed)||Percentage savings|
Note: These figures do not include HTTP header size, just the HTML size.
1Andy King and Konstantin Balashov, Speed Up Your Site: Web Site Optimization (Indianapolis: New Riders Publishing, 2003), Chapter 18, "Compressing the Web," 412. See Table 18.2: Content Encoding Average Compression Ratios for Different Web Site Categories.
2P. Destounis, J. Garofalakis, P. Kappos, and J. Tzimias, "Measuring the Mean Web page size and its compression to limit latency and improve download time," Internet Research: Electronic Networking Applications and Policy 11, no. 1 (2001): 15. Analyzing five popular web sites (cnn.com, disney.com, ibm.com, microsoft.com, and netscape.com) Destounis et. al found a mean compression gain of 75.2% across 9,281 HTML pages. The mean web page size was 13,540 bytes.
Article originally published on December 4, 2003.
By website optimization on 22 Sep 2009 AM