Client-Side Inclusion (CSI) is a technology that allows dynamic Web page assembly from individual fragments at the Web browser. By reusing cached copies of unchanged fragments, CSI reduces the amount of data sent from the Web site to the browser and thereby lowers the download time of the page, especially for narrowband clients.
Pages that convey fast-changing information to the user in fact often contain a large static "boilerplate", or template, that does not change from access to access. This template includes page headers and footers, formatting instructions, navigation areas, and so on. For example, a stock trading page contains dynamic information (stock quotes) but can also have a large template including company name, links to policies and commission schedules, copyright notices, etc., the navigation bar with links to trading, research, and trading history pages, as well as formatting instructions to arrange the stock quotes into a table. CSI allows the broswer to cache the template across page accesses and populate it with dynamic fragments for a given access. In fact different pages often share the same boilerplate. As an example, e-commerce sites often reuse the same template for different product pages. With CSI, the client reuses this common template when browsing through various products on the site. Furthermore, difference portions dynamic information on a page can change more or less rapidly depending on the nature of content. For example, on att.com page, the AT&T's stock quote might change every second, the headlines every hour, and the rest of the page every month. CSI allows each fragment to have its own caching properties, such as expiration time. This design facilitates caching of unchanged fragments at the browser and helps reduce the congestion in the network as well as the processing overhead at origin servers.
By moving page assembly from origin servers to browsers, CSI reduces the amount of information transferred over the last mile. Hence, this technique not only reduces bandwidth consumption by the origin server but also reduces the response time experienced by narrowband users. Additional important benefits of CSI include the following:
1. CSI technology is orthogonal to existing Web acceleration technologies like content delivery networks or proxy caching. In particular, it can be offered as a value-added service of a hosting service to customers who may not wish to subscribe to a CDN.
2. For content providers who do use a CDN, CSI reduces their CDN costs by reducing the amount of content that browsers download from the edge servers. These savings are in addition to the reduction in origin server bandwidth costs described earlier.
Our implementation of CSI is backward-compatible with the existing ESI 1.0 specification, a mark-up language for page fragmentation. Hence, Web sites that currently use ESI can start benefiting from CSI without changing their content. Our implementation supports recent versions of Internet Explorer and requires no modification or reconfiguration of the browser. For other types of browsers, we implemented a transparent fallback mechanism that allows the origin server to reconstruct HTML pages from CSI fragments.