One of improvements that I was impressed on the last version of varnish is the support of ESI language and, although the previous version was implemented part of this language, this did not works well.
For the people that don’t know that I’m talking, ESI is a mark up language that permit mark parts of a web page for are cached for independent time of the rest of the web. Imagine that you have in your home a part that is 100% static (logo, menu,..) and you have other dynamically parts (a news column for example). The traditional systems, until now, only permit cached a full page so if you want update the news column, you have send to you cache system the order for update the full page (include the static parts that you do not updated). With ESI, you can indicate that only update a part of the page (in this case, the news column) so rest page is not updated saving the memory, cpu and traffic cost.
When I started with Varnish 3, one of things that help me to research is discover how execute Varnish 3 on debug mode.
I don’t know if the before version has got this option but this mode is great for research.
Recently I started with Varnish and it’s so interesting. For the people that don’t know Varnish-cache is a proxy-cache that you can install on web server and, configured correctly, it can make that your web fly.
How works is easy to understand, when Varnish is installed, you need indicate where must go to request the information that the users are requesting to it. So when the visitors look your web, Varnish download your web for next, send it to users and save the result the time that you indicate. In this time, if other users request your web, if the info is not changed, Varnish do no need to request the web again, saving the bandwidth and cpu, and accomplishing that your web fly.