Professional Documents
Culture Documents
INTRODUCTION
As the web evolves to deliver more
engaging and interactive experiences, one
prominent outcome is the increasing size
and complexity of web pages. As reported
by httparchive, the average page size of the
top 100 websites has grown from 400KB to
1300KB over the past five years, due to the
increase in heavy images and complex
JavaScript and HTML code. This creates
some serious web performance challenges.
At Instart Logic we address this challenge with our software-defined application delivery (SDAD) platform that optimizes the
delivery of the underlying components of complex web pages, such as images (Image Streaming), and JavaScript
(JavaScript Streaming).
However, another prominent trend is that for a significant percentage of these sites, the underlying HTML itself is not
cacheable. As per httparchive, nearly 40-50% of the analyzed sites have explicit do not cache directives in the HTTP
response headers. Our internal analysis of the Internet Retailer top 100 websites (a collection of the most popular ecommerce websites) suggests that almost half of web pages are not cacheable.
A page is marked as non-cacheable typically when it involves a degree of personalization a trend that is increasingly
common across a wide range of web sites. Since personalization requires the execution of some server-side business logic,
such pages can lead to significantly long delays. Dynamic pages usually represent some of the most interactive, media-rich
(and thus latency-prone) pages on the web. Yet, their non-cacheable nature conflicts with the traditional approach of
speeding up the delivery of web objects to cache and serve from local browser storage or the edge.
So, we asked ourselves is there a systematic way to bring better performance to modern, hard-to-cache, dynamic HTML
web pages? Instart Logics answer to this question is our new SmartSequence technology with HTML Streaming.
Now, after sending the stub, the Instart Logic server will make a request to the origin. When the response arrives back at the
server (at time t5) the HTML Streaming service within the server compares the HTML in the response to the one sent out
earlier with the stub. Any differences are patched by sending instructions to the client Nanovisor. If the resulting patch is found
to be unsafe, then the server and the client work in conjunction to reload the page automatically before anything is shown to
the end user.
The head start a browser receives when it processes the stub can result in substantial performance gains (up to 40% over certain
crucial web page performance metrics such as Start Render, and DOM Content Loaded).
Assume that the value attribute of this <META> element changes across requests, and hence this element is not included in the
cached stab (and will be subsequently patched-in). Now suppose there is a <SCRIPT> element, present in the stub, further down
the <HEAD> which accesses this <META> element. This could lead to problems in the page load, since the accessed <META>
element was not included in the stub. To deal with this issue, we virtualize the changing element. This entails removing all
sensitive (changing) attributes, and then, using the Nanovisor, to set up a watch by intercepting all access functions for this
element. The watch allows us to determine if a subsequent patching of this changing element is safe or not.
In addition, there are other conditions (e.g. preserving the execution order of scripts) that also have to be further satisfied to
ensure correctness, which we are not going into today as part of this blog post.
CONCLUSION
In summary, modern web sites are moving towards personalization for better user engagement. However, often this comes at the
cost of performance due to non-cacheable dynamic HTML. At the same time, users are growing increasingly impatient and want
to view content as soon as possible. Performance is thus an important imperative for these web sites.
Instart Logics HTML Streaming feature powered by SmartSequence technology is a new mechanism to accelerate dynamic web
page performance and improve user experience. Evaluations of HTML Streaming applied to Internet Retailer Top 100 sites with
dynamic HTML content demonstrate significant performance gains for a wide range of sites. In fact, we have observed gains
greater than 20-30% on a range of metrics such as Start Render, Load Time and Speed Index, for 20-40% of the sites considered
(depending on the metric). These gains hold across first and repeat views, and end user connection types (wired cable or mobile
3G).
HTML Streaming is being deployed today by several of our customers who are enjoying these great performance benefits.