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...
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...
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 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, 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 :...
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 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 is an American multinational computer technology corporation that specializes in developing and marketing hardware systems and enterprise software products – particularly database management systems...
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...
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.
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 XML
XML
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 server
Web server
Web server can refer to either the hardware or the software that helps to deliver content that can be accessed through the Internet....
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...
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...
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...
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...
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...