# Wednesday, May 16, 2007
Wednesday, May 16, 2007 3:31:03 AM UTC
« [Previous Post] Building A Low-Power S... 2007 Nissan Altima Nav... [Next Post] »

This is targeted mainly towards server administrators running IIS, but if you’re just an internet user, you may find it of some value too.

Jeff Atwood, over at his Coding Horror blog, briefly touched on HTTP compression a while back, following it up with a post involving IIS 6.0 and compression, and later a post regarding using a .NET HttpModule to handle compression in ASP.Net sites. You should definitely read these posts if you have no idea what HTTP compression is. Don’t worry, I’ll wait. Back? Good.

I had been using the HttpModule approach for a while, with the well-made (and free) blowery HttpCompressionModule. I have run into some problems, though. There are some redirect actions that can cause the module to fail, as well as other documented problems. Plus, the module does nothing to compress non ASP.Net content, such as ASP pages, style sheets and javascript files.

In doing more researching, I came across IISXpress, another free (for personal use only, not on a server) HTTP compression program. This one hooks into ISAPI, which means that any content that IIS serves wil be passed through this program for compression. IISXpress allows you to define content types you wish to include/exclude, as well as directories.

I really liked how IISXpress showed a history of every file it compressed, and what the savings were. There’s no guessing on my side if it’s working or not. I know it is from the history’s output. I liked the program so much that I decided to buy it almost immediately. $50 well spent!

If you run a web server, you owe it to yourself to research HTTP compression. It will allow you to serve the same content, but using less bandwidth in the process. And your end-users won’t need to do anything special!

 
Wednesday, May 16, 2007 4:33:13 PM UTC
I think what you should at least address is the trade off in saving bandwidth with increased load on your server.

Although you can save bandwidth, compression load on top of app processing load, your pages per second drops as requests increase.
Wednesday, May 16, 2007 5:04:04 PM UTC
Eric,

That's a good point. For most sites, it's not going to matter. Now, if you're MySpace or something, you might want to investigate further :) I'm not sure what enterprise-level solutions exist. As far as I know, even huge sites could use something like Apache's mod_gzip module, or IIS's built in compression without too much of a CPU ding. Both IIS and IISXpress have options for specifying how "well" you want to compress the content, with the maximum level using the most amount of CPU/time. The benefit of IISXpress, though, is that it has a cache, so if it's already compressed that static content, it doesn't need to compress it again (unless it's changed.)

I know at my old job that we had HTTP compression turned on for our intranet/public servers, and never ran into problems, even during the busiest hours. But then again, we weren't exactly hitting our limits :)

http://blogs.intesoft.net/simon/archive/2005/07/14/28.aspx is another interesting post regarding HTTP compression and IIS/ASP.Net
Wednesday, May 16, 2007 7:26:15 PM UTC
http://ausweb.scu.edu.au/aw05/papers/refereed/yuan/paper.html

^-- A great article that actually runs the numbers on performance statistics.
Name
E-mail
(will show your gravatar icon)
Home page

Comment (Some html is allowed: a@href@title, b, blockquote@cite, em, i, strike, strong, sub, sup, u) where the @ means "attribute." For example, you can use <a href="" title=""> or <blockquote cite="Scott">.  

Enter the code shown (prevents robots):

Live Comment Preview