Show me the cache
|
|
|||
|
|
Sign up to receive this and other networking newsletters in your inbox.
Caching Web content has become big business and the likes of Akamai have demonstrated the value of accelerating the delivery process.
But as you may know, the way Web content is cached today really only works for static content. As the majority of Web content is dynamically created, often down to the level of per user or per session, static content caching becomes more-or-less useless.
Advertisement: |
But wait a minute - if you take a Web page that contains dynamically generated content, a portion will be static while other parts will change according to cookies, browser type, time of day and so on. So why not handle different parts of a Web page accordingly?
To this end, the formidable combination of Akamai, ATG, BEA Systems, Circadence, Digital Island, IBM, Interwoven, Oracle, and Vignette have co-authored a mechanism called Edge Side Includes (ESI) to solve this problem.
ESI is a simple XML-style markup language used to define Web page components for the purposes of controlling caching services. It allows servers that cache content to provide dynamic assembly and delivery of that content at the edge of the Internet - in other words, the nearest delivery point to consumers.
ESI is, indeed, simple. Web pages are divided into sections using a markup that defines the content type in sections called 'fragments'. The fragments are labeled with tags that define the attributes of each fragment and the edge servers handle those fragments accordingly.
The tags in ESI Version 1.0 (see www.edge-delivery.org/overview.html) are:
<esi:include> Include a separately cacheable fragment.
<esi:choose> Conditional execution - choose among several different alternatives based on, for example, cookie value or user agent.
<esi:try> Specify alternative processing when a request fails (e.g., the origin server is not accessible).
<esi:vars> Permit variable substitution (for environment variables).
<esi:remove> Specify alternative content to be stripped by ESI but displayed by the browser if ESI processing is not done.
<!--esi ... --> Specify content to be processed by ESI but hidden from the browser.
<esi:inline> Include a separately cacheable fragment whose body is included in the template.
For Java there is a complementary standard called Java Edge Side Includes (JESI), which is designed to make ESI easily accessible for sites using Java Server Pages.
The full specification for the ESI 1.0 Language Specification, the Edge Architecture Specification, the ESI Invalidation Protocol, the JESI Tag Library Specification can be found at www.edge-delivery.org/spec.html
ESI is a promising technology, which we will cover in greater depth in a future Gearhead column in Network World.
RELATED LINKS
Mark Gibbs is a consultant, author, journalist, and columnist. He writes the weekly Backspin and Gearhead columns in Network World. Gibbs is also co-conspirator of the Vitally Important Information Web site.
Gibbs can be contacted at webapps@gibbs.com. Press releases to pr@gibbs.com.
Edge Side Includes
