<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: gzip, where have you been all my life..?</title>
	<atom:link href="http://blog.opencomponentry.com/2006/12/03/gzip-where-have-you-been-all-my-life/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.opencomponentry.com/2006/12/03/gzip-where-have-you-been-all-my-life/</link>
	<description>blah blah blah, blah blah..</description>
	<lastBuildDate>Thu, 04 Mar 2010 19:37:10 -0500</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: opencomponentry &#187; Blog Archive &#187; Tapestry 4.1.2 / OGNL 2.7 Released</title>
		<link>http://blog.opencomponentry.com/2006/12/03/gzip-where-have-you-been-all-my-life/comment-page-1/#comment-2446</link>
		<dc:creator>opencomponentry &#187; Blog Archive &#187; Tapestry 4.1.2 / OGNL 2.7 Released</dc:creator>
		<pubDate>Wed, 27 Jun 2007 02:38:33 +0000</pubDate>
		<guid isPermaLink="false">http://blog.opencomponentry.com/?p=30#comment-2446</guid>
		<description>[...] many instances) - is also now available. The details of why/how that came about can be read about here. These enhacements do all kinds of nice things for your assets for you automatically - such as [...]</description>
		<content:encoded><![CDATA[<p>[...] many instances) &#8211; is also now available. The details of why/how that came about can be read about here. These enhacements do all kinds of nice things for your assets for you automatically &#8211; such as [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Israel L</title>
		<link>http://blog.opencomponentry.com/2006/12/03/gzip-where-have-you-been-all-my-life/comment-page-1/#comment-391</link>
		<dc:creator>Israel L</dc:creator>
		<pubDate>Fri, 08 Dec 2006 22:03:35 +0000</pubDate>
		<guid isPermaLink="false">http://blog.opencomponentry.com/?p=30#comment-391</guid>
		<description>HTTP Compression is a huge win for text/html, css, js, XML, XSL.  When we started redlinenetworks -&gt; (now juniper) we would regularly see 50% bandwidth savings on commercial sites.  Then we added features to rewrite the HTTP headers on-the-fly to maximize browser caching and things sped up even more.  

Things get complicated for the browser based on content-type, cache settings and SSL/vs. nonSSL.  Even compression type (gzip vs. deflate) is an issue as is page content (iframes, etc.) If you have lots of traffic and want to make sure your site works with all kinds of compression, it&#039;s worth your while to go with an appliance like the Juniper DX.  I don&#039;t work there anymore, but it was the best box on the market for HTTP/S compression and general site acceleration.  We would always be able to beat the rendering bugs when other boxes erred out.

If you don&#039;t feel like spending a bunch of money on a commercial solution, of course there are free alternatives like mod_gzip.  There are several tricky parts that can bite you though, so my advice here is to be less optimized but always working.  

- Throroughly test your content on IE 6, 7 and FF.   text/html is usually safe to compress, while js and css are trickier with client caching so be extra careful.  XSL is usually ok, XML is iffy.  Double check everything in SSL if you use it.  For example IE 6 can&#039;t support compression of XML with no caching via SSL.
- Test with cache cleared and a dirty browser cache
- Use deflate (vs. gzip) if you can, especially if your solution uses chunking vs. content-length. 
- Chunking reduces Time to First Byte significantly, so use that if you can.  Otherwise try to compress and cache the response.  Most free solutions are pretty slow (high latency) at compression, so try to avoid latency wherever you can.
- add headers &quot;Vary: Accept-Encoding, User-Agent&quot; so that downstream caches don&#039;t cache the wrong thing for the wrong browser 
- Use Max-Age: to avoid the 304.

We&#039;re using lots of compression and caching techniques on an AJAX / XML / XSL ecommerce site at www.cocoluna.com.  

Here are our current stats:

Content    Av. Object size     %bytes saved
HTML          780 bytes            26%
CSS           7.7K                    74%
JS              19.7K                  68%
XML            3.4K                   76%
XSL           10.5K                   35%

The site is all SSL, so you can&#039;t sniff the network to look at the requests but you can use browser based tools.  Feel free to contact me if you want more info or specific tips.</description>
		<content:encoded><![CDATA[<p>HTTP Compression is a huge win for text/html, css, js, XML, XSL.  When we started redlinenetworks -&gt; (now juniper) we would regularly see 50% bandwidth savings on commercial sites.  Then we added features to rewrite the HTTP headers on-the-fly to maximize browser caching and things sped up even more.  </p>
<p>Things get complicated for the browser based on content-type, cache settings and SSL/vs. nonSSL.  Even compression type (gzip vs. deflate) is an issue as is page content (iframes, etc.) If you have lots of traffic and want to make sure your site works with all kinds of compression, it&#8217;s worth your while to go with an appliance like the Juniper DX.  I don&#8217;t work there anymore, but it was the best box on the market for HTTP/S compression and general site acceleration.  We would always be able to beat the rendering bugs when other boxes erred out.</p>
<p>If you don&#8217;t feel like spending a bunch of money on a commercial solution, of course there are free alternatives like mod_gzip.  There are several tricky parts that can bite you though, so my advice here is to be less optimized but always working.  </p>
<p>- Throroughly test your content on IE 6, 7 and FF.   text/html is usually safe to compress, while js and css are trickier with client caching so be extra careful.  XSL is usually ok, XML is iffy.  Double check everything in SSL if you use it.  For example IE 6 can&#8217;t support compression of XML with no caching via SSL.<br />
- Test with cache cleared and a dirty browser cache<br />
- Use deflate (vs. gzip) if you can, especially if your solution uses chunking vs. content-length.<br />
- Chunking reduces Time to First Byte significantly, so use that if you can.  Otherwise try to compress and cache the response.  Most free solutions are pretty slow (high latency) at compression, so try to avoid latency wherever you can.<br />
- add headers &#8220;Vary: Accept-Encoding, User-Agent&#8221; so that downstream caches don&#8217;t cache the wrong thing for the wrong browser<br />
- Use Max-Age: to avoid the 304.</p>
<p>We&#8217;re using lots of compression and caching techniques on an AJAX / XML / XSL ecommerce site at <a href="http://www.cocoluna.com" rel="nofollow">http://www.cocoluna.com</a>.  </p>
<p>Here are our current stats:</p>
<p>Content    Av. Object size     %bytes saved<br />
HTML          780 bytes            26%<br />
CSS           7.7K                    74%<br />
JS              19.7K                  68%<br />
XML            3.4K                   76%<br />
XSL           10.5K                   35%</p>
<p>The site is all SSL, so you can&#8217;t sniff the network to look at the requests but you can use browser based tools.  Feel free to contact me if you want more info or specific tips.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Doug Karr</title>
		<link>http://blog.opencomponentry.com/2006/12/03/gzip-where-have-you-been-all-my-life/comment-page-1/#comment-345</link>
		<dc:creator>Doug Karr</dc:creator>
		<pubDate>Wed, 06 Dec 2006 04:04:11 +0000</pubDate>
		<guid isPermaLink="false">http://blog.opencomponentry.com/?p=30#comment-345</guid>
		<description>Thanks!  I&#039;m not a formal programmer but I&#039;ve hacked out quite a few applications.  I was recently working on some caching processes... the difficult way by writing out my source page and then checking the age of the page.  Your methods here may go much further!</description>
		<content:encoded><![CDATA[<p>Thanks!  I&#8217;m not a formal programmer but I&#8217;ve hacked out quite a few applications.  I was recently working on some caching processes&#8230; the difficult way by writing out my source page and then checking the age of the page.  Your methods here may go much further!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ajax Performance &#187; Gzip and Caching love for Tapestry</title>
		<link>http://blog.opencomponentry.com/2006/12/03/gzip-where-have-you-been-all-my-life/comment-page-1/#comment-333</link>
		<dc:creator>Ajax Performance &#187; Gzip and Caching love for Tapestry</dc:creator>
		<pubDate>Tue, 05 Dec 2006 03:52:58 +0000</pubDate>
		<guid isPermaLink="false">http://blog.opencomponentry.com/?p=30#comment-333</guid>
		<description>[...] Tapestry developer Jesse Kuhnert knocked out a tasty update, tuning cache parameters and adding liberal use of gzip to yield a bundled dojo kit that is 25% of its previous size over the wire. Also, text responses from Ajax and json requests are compressed automatically. [...]</description>
		<content:encoded><![CDATA[<p>[...] Tapestry developer Jesse Kuhnert knocked out a tasty update, tuning cache parameters and adding liberal use of gzip to yield a bundled dojo kit that is 25% of its previous size over the wire. Also, text responses from Ajax and json requests are compressed automatically. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ajaxian &#187; Compression, Caching, for faster load times</title>
		<link>http://blog.opencomponentry.com/2006/12/03/gzip-where-have-you-been-all-my-life/comment-page-1/#comment-324</link>
		<dc:creator>Ajaxian &#187; Compression, Caching, for faster load times</dc:creator>
		<pubDate>Mon, 04 Dec 2006 15:24:42 +0000</pubDate>
		<guid isPermaLink="false">http://blog.opencomponentry.com/?p=30#comment-324</guid>
		<description>[...] Jesse Kuhnert, Tapestry/Dojo team member, spent time on caching and compression mechanisms in the effort to give the best experience &#8220;for free&#8221; with Tapestry. [...]</description>
		<content:encoded><![CDATA[<p>[...] Jesse Kuhnert, Tapestry/Dojo team member, spent time on caching and compression mechanisms in the effort to give the best experience &#8220;for free&#8221; with Tapestry. [...]</p>
]]></content:encoded>
	</item>
</channel>
</rss>
