Edge Side Includes
Encyclopedia
Edge Side Includes or ESI is a small markup language
for edge
level dynamic web content assembly. The purpose of ESI is to tackle the problem of web infrastructure scaling. It is an application of edge computing
.
It is fairly common for websites to have generated content. It could be because of changing content like catalogs or forums, or because of personalization
. This creates a problem for caching
systems. To overcome this problem a group of companies (Akamai
, Art Technology Group
, BEA Systems
, Circadence Corporation, Digital Island, Inc.
, Interwoven, Inc.
, Open Market, whose ESI-related technology is now owned by FatWire Software
, Oracle Corporation
and Vignette Corporation
) developed the ESI specification and submitted it to the W3C for approval. The proposal editor was Mark Nottingham
.
ESI Language Specification 1.0 was submitted to the World Wide Web Consortium
(W3C) for approval in August 2001. The W3C has acknowledged receipt, but has not accepted the proposal.
ESI is implemented by some content delivery network
s, such as Akamai, and by some caching proxy server
s such as Varnish, Squid and Mongrel ESI, although many do not implement the complete specification. Akamai also adds additional features to the version they support.
based ESI tags indicate to the edge-side processing agent the action that needs to be taken to complete the page's assembly. One simple example of an ESI element is the include tag which is used to include content external to the page. An ESI include tag placed in-line within an HTML document would look like this:
In this case the ESI processor would retrieve the src URL, or failing that the alt URL, or if that failed do nothing. The ESI system is usually a caching proxy server so it may have a local copy of these files which it can insert without going back to the server. Alternatively the whole page with the ESI tags may be cached, and only the ESI requests may be made to the origin server. This allows different caching times for different parts of the page, or different degrees of personalisation.
using Server Side Includes
and many types of server-side scripting
, or in the browser
using client-side scripting
and techniques collectively known as Ajax
(see: Dynamic web page
).
Markup language
A markup language is a modern system for annotating a text in a way that is syntactically distinguishable from that text. The idea and terminology evolved from the "marking up" of manuscripts, i.e. the revision instructions by editors, traditionally written with a blue pencil on authors' manuscripts...
for edge
Edge device
Edge devices are routers, routing switches, integrated access devices , multiplexers, and a variety of metropolitan area network and wide area network access devices that provide entry points into enterprise or service provider core networks...
level dynamic web content assembly. The purpose of ESI is to tackle the problem of web infrastructure scaling. It is an application of edge computing
Edge computing
Edge computing provides application processing load balancing capacity to corporate and other large-scale web servers. It is like an application cache, where the cache is in the Internet itself. Static web-sites being cached on mirror sites is not a new concept...
.
It is fairly common for websites to have generated content. It could be because of changing content like catalogs or forums, or because of personalization
Personalization
Personalization involves using technology to accommodate the differences between individuals. Once confined mainly to the Web, it is increasingly becoming a factor in education, health care Personalization involves using technology to accommodate the differences between individuals. Once confined...
. This creates a problem for caching
Cache
In computer engineering, a cache is a component that transparently stores data so that future requests for that data can be served faster. The data that is stored within a cache might be values that have been computed earlier or duplicates of original values that are stored elsewhere...
systems. To overcome this problem a group of companies (Akamai
Akamai Technologies
Akamai Technologies, Inc. is an Internet content delivery network headquartered in Cambridge, Massachusetts, US.The company was founded in 1998 by then-MIT graduate student Daniel M. Lewin, and MIT Applied Mathematics professor Tom Leighton...
, Art Technology Group
Art Technology Group
Art Technology Group was an independent Internet technology company specializing in eCommerce software and on-demand optimization applications until its acquisition by Oracle on January 5, 2011...
, BEA Systems
BEA Systems
BEA Systems, Inc. specialized in enterprise infrastructure software products known as "middleware", which connect software applications to databases and was acquired by Oracle Corporation on April 29, 2008.- History :...
, Circadence Corporation, Digital Island, Inc.
Digital Island
Digital Island Communications is a 100% Kiwi owned business telecommunications provider based in Auckland, New Zealand. Winners of the Deloitte Fast 50 awards for "Fastest growing technology company" in 2008, and "Fastest growing telecommunications business" in 2007, Digital Island also placed...
, Interwoven, Inc.
Interwoven
Interwoven is a line of Content Management Systems and related products. Previously a stand-alone company headquartered in San Jose, California, USA and founded in 1995, it was acquired on March 17, 2009 by Autonomy...
, Open Market, whose ESI-related technology is now owned by FatWire Software
FatWire
FatWire Software is a privately held company selling web content management system software.-History :* 1996: Established by Mark Fasciano, Ari Kahn and John Murcott it was named FutureTense...
, Oracle Corporation
Oracle Corporation
Oracle Corporation is an American multinational computer technology corporation that specializes in developing and marketing hardware systems and enterprise software products – particularly database management systems...
and Vignette Corporation
Vignette (software)
Vignette Corporation is a company headquartered in Austin, Texas, that offers a suite of content management, portal, collaboration, document management, and records management software. On May 6, 2009 Open Text Corporation announced they would buy Vignette for $310 million...
) developed the ESI specification and submitted it to the W3C for approval. The proposal editor was Mark Nottingham
Mark Nottingham
Mark Nottingham is an influential web infrastructure developer who is one of the authors of the Atom and WS-I Basic Profile specifications, the author of RFC 4229: HTTP Header Registrations, and the chairman of the IETF HTTPBIS Working Group and W3C Web Services Addressing Working Group...
.
ESI Language Specification 1.0 was submitted to the World Wide Web Consortium
World Wide Web Consortium
The World Wide Web Consortium is the main international standards organization for the World Wide Web .Founded and headed by Tim Berners-Lee, the consortium is made up of member organizations which maintain full-time staff for the purpose of working together in the development of standards for the...
(W3C) for approval in August 2001. The W3C has acknowledged receipt, but has not accepted the proposal.
ESI is implemented by some content delivery network
Content Delivery Network
A content delivery network or content distribution network is a system of computers containing copies of data placed at various nodes of a network....
s, such as Akamai, and by some caching proxy server
Proxy server
In computer networks, a proxy server is a server that acts as an intermediary for requests from clients seeking resources from other servers. A client connects to the proxy server, requesting some service, such as a file, connection, web page, or other resource available from a different server...
s such as Varnish, Squid and Mongrel ESI, although many do not implement the complete specification. Akamai also adds additional features to the version they support.
How ESI is implemented
ESI element tags are inserted into HTML or other text based content during creation. Instead of being displayed to viewers these ESI tags are directives that instruct an ESI processor to take some action. The XMLXML
Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....
based ESI tags indicate to the edge-side processing agent the action that needs to be taken to complete the page's assembly. One simple example of an ESI element is the include tag which is used to include content external to the page. An ESI include tag placed in-line within an HTML document would look like this:
In this case the ESI processor would retrieve the src URL, or failing that the alt URL, or if that failed do nothing. The ESI system is usually a caching proxy server so it may have a local copy of these files which it can insert without going back to the server. Alternatively the whole page with the ESI tags may be cached, and only the ESI requests may be made to the origin server. This allows different caching times for different parts of the page, or different degrees of personalisation.
Features
There are four main features in ESI: inclusion of page fragments, as illustrated above; variables which can be set from cookies or HTTP headers and then used in other ESI statements or written into markup; conditions so that different markup can be used based on variables, for example if a cookie is set or not; and error handling, so that a failover can be used if an origin server is unavailable.Alternatives
The main alternatives to ESI are to do assembly on the origin serverWeb server
Web server can refer to either the hardware or the software that helps to deliver content that can be accessed through the Internet....
using Server Side Includes
Server Side Includes
Server Side Includes is a simple interpreted server-side scripting language used almost exclusively for the Web.The most frequent use of SSI is to include the contents of one or more files into a web page on a web server...
and many types of server-side scripting
Server-side scripting
Server-side scripting is a web server technology in which a user's request is verified by running a script directly on the web server to generate dynamic web pages. It is usually used to provide interactive web sites that interface to databases or other data stores. This is different from...
, or in the browser
Web browser
A web browser is a software application for retrieving, presenting, and traversing information resources on the World Wide Web. An information resource is identified by a Uniform Resource Identifier and may be a web page, image, video, or other piece of content...
using client-side scripting
Client-side scripting
Client-side scripting generally refers to the class of computer programs on the web that are executed client-side, by the user's web browser, instead of server-side...
and techniques collectively known as Ajax
Ajax (programming)
Ajax is a group of interrelated web development methods used on the client-side to create asynchronous web applications...
(see: Dynamic web page
Dynamic web page
A dynamic web page is a kind of web page that has been prepared with fresh information , for each individual viewing. It is not static because it changes with the time , the user , the user interaction , the context A dynamic web page is a kind of web page that has been prepared with fresh...
).