THE FUTURE IS HERE: APPLICATION- AWARE CACHING BY ASHOK ANAND.

Slides:



Advertisements
Similar presentations
CS193H: High Performance Web Sites Lecture 12: Rule 8 – Make JavaScript and CSS External Steve Souders Google
Advertisements

Working with the Internet
CHAPTER 15 WEBPAGE OPTIMIZATION. LEARNING OBJECTIVES How to test your web-page performance How browser and server interactions impact performance What.
4.01 How Web Pages Work.
Client side performance in Web based Banking applications Divakar Prabhu Infosys Limited (NASDAQ: INFY)
Amazon CloudFront An introductory discussion. What is Amazon CloudFront? 5/31/20122© e-Zest Solutions Ltd. Amazon CloudFront is a web service for content.
1 Content Delivery Networks iBAND2 May 24, 1999 Dave Farber CTO Sandpiper Networks, Inc.
Project 1 Introduction to HTML.
1 Caching in HTTP Representation and Management of Data on the Internet.
How the web works: HTTP and CGI explained
What’s a Web Cache? Why do people use them? Web cache location Web cache purpose There are two main reasons that Web cache are used:  to reduce latency.
WHAT IS AJAX? Zack Sheppard [zts2101] WHIM April 19, 2011.
ASP.NET 2.0 Chapter 6 Securing the ASP.NET Application.
Topics in this presentation: The Web and how it works Difference between Web pages and web sites Web browsers and Web servers HTML purpose and structure.
1 Web Content Delivery Reading: Section and COS 461: Computer Networks Spring 2007 (MW 1:30-2:50 in Friend 004) Ioannis Avramopoulos Instructor:
Introduction 2: Internet, Intranet, and Extranet J394 – Perancangan Situs Web Program Sudi Manajemen Universitas Bina Nusantara.
1st Project Introduction to HTML.
COMPUTER TERMS PART 1. COOKIE A cookie is a small amount of data generated by a website and saved by your web browser. Its purpose is to remember information.
The Internet & The World Wide Web Notes
HTML 1 Introduction to HTML. 2 Objectives Describe the Internet and its associated key terms Describe the World Wide Web and its associated key terms.
Chapter ONE Introduction to HTML.
Chapter 25 Utilizing Web Storage.
DHTML. What is DHTML?  DHTML is the combination of several built-in browser features in fourth generation browsers that enable a web page to be more.
Dynamic Web Pages (Flash, JavaScript)
DATA COMMUNICATION DONE BY: ALVIN SAMPATH CARLVIN SAMPATH.
PIZZA WEB PAGE May 28, FOR TODAY  Review Vocabulary Words (take out your worksheets!)  Pizza Web Page  Research more tags  Turn in your homework!
14 Publishing a Web Site Section 14.1 Identify the technical needs of a Web server Evaluate Web hosts Compare and contrast internal and external Web hosting.
Build a Free Website1 Build A Website For Free 2 ND Edition By Mark Bell.
Building Highly Scalable Websites Karol Jarkovsky Sr. Solution Architect
Understanding the Web Site Development Process. Understanding the Web Site Development You need a good project plan Larger projects need a project manager.
Advanced Web Forms with Databases Programming Right from the Start with Visual Basic.NET 1/e 13.
M i SMob i S Mob i Store - Mobile i nternet File Storage Platform Chetna Kaur.
5 Chapter Five Web Servers. 5 Chapter Objectives Learn about the Microsoft Personal Web Server Software Learn how to improve Web site performance Learn.
The Internet and the World Wide Web. The Internet A Network is a collection of computers and devices that are connected together. The Internet is a worldwide.
Web Page Design I Basic Computer Terms “How the Internet & the World Wide Web (www) Works”
Web HTTP Hypertext Transfer Protocol. Web Terminology ◘Message: The basic unit of HTTP communication, consisting of structured sequence of octets matching.
Database-Driven Web Sites, Second Edition1 Chapter 5 WEB SERVERS.
Introduction to HTML. What is HTML?  Hyper Text Markup Language  Not a programming language but a markup language  Used for presentation and layout.
Kiew-Hong Chua a.k.a Francis Computer Network Presentation 12/5/00.
Introduction to DFS. Distributed File Systems A file system whose clients, servers and storage devices are dispersed among the machines of a distributed.
Session: 1. © Aptech Ltd. 2Introduction to the Web / Session 1  Explain the evolution of HTML  Explain the page structure used by HTML  List the drawbacks.
INTERNET. Objectives Explain the origin of the Internet and describe how the Internet works. Explain the difference between the World Wide Web and the.
How the Web Works Building a Website – Lesson 1. How People Access the Web Browsers People access websites using software called a web browser. To view.
HTML 5 Tutorial Chapter 6 Web Storage. Storing Data on The Client HTML5 offers two new objects for storing data on the client: localStorage - stores data.
Fundamentals of Web DevelopmentRandy Connolly and Ricardo HoarFundamentals of Web DevelopmentRandy Connolly and Ricardo Hoar Fundamentals of Web DevelopmentRandy.
HTML Concepts and Techniques Fifth Edition Chapter 1 Introduction to HTML.
Creating Animations, Working with Graphics, and Accessing Data Lesson 9.
Learning Aim C.  In this section we will look at some simple client-side scripts, browser compatibility, exporting and compressing and suitable file.
Leveraging Web Content Management in SharePoint 2013 Christina Wheeler.
A SMART PLATFORM FOR ACCELERATED DELIVERY OF THE VISUAL WEB BY PARVEZ AHAMMAD.
Web Cache. What is Cache? Cache is the storing of data temporarily to improve performance. Cache exist in a variety of areas such as your CPU, Hard Disk.
WHAT'S THE DIFFERENCE BETWEEN A WEB APPLICATION STREAMING NETWORK AND A CDN? INSTART LOGIC.
FRONT END OPTIMIZATION: TRADE-OFFS YOU'RE FORCED TO MAKE BY KYLE GENTRY.
The Internet Salihu Ibrahim Dasuki (PhD) CSC102 INTRODUCTION TO COMPUTER SCIENCE.
World Wide Web 16 World Wide Web 16. World Wide Web 16 Everyone also talks about the Web But people don’t really understand how it works You need to know.
Using HTML5 to Build Offline Applications Woody Pewitt Icenium
MICROSOFT AJAX CDN (CONTENT DELIVERY NETWORK) Make Your ASP.NET site faster to retrieve.
IF STARBUCKS USED INSTART LOGIC, THEY WOULD HAVE A FASTER RESPONSIVE WEBSITE BY PETER BLUM.
FASTER PERFORMANCE FOR DYNAMIC HTML PAGES BY SHARAD JAISWAL.
Enhance Your Page Load Speed And Improve Traffic.
4.01 How Web Pages Work.
How HTTP Works Made by Manish Kushwaha.
CISC103 Web Development Basics: Web site:
Introducing the World Wide Web
Building a Custom Video Player
Web Caching? Web Caching:.
Utilization of Azure CDN for the large file distribution
CISC103 Web Development Basics: Web site:
HTML5 and Local Storage.
4.01 How Web Pages Work.
Presentation transcript:

THE FUTURE IS HERE: APPLICATION- AWARE CACHING BY ASHOK ANAND

Modern web pages are complex and the number of resources required to download a page continues to increase. To load a web page a browser may need to download HTML, images, stylesheets, scripts, video, fonts and a variety of other resources. As of July 2015 over 30% of web pages request more than 100 resources, and based on cache lifetime statistics 67% of these resources are cached for less than a day.

Eliminating round trips by caching frequently-used resources is one of the most common suggestions for improving web page performance, so why are so few applications applying this technique? Unfortunately browser caches offer no application control and unpredictable performance gains. In order for a quality user experience, an application needs to control what content gets cached, with what priority, and where it is stored. With the availability of HTML5 storages such as WebStorage, FileSystem and IndexedDB, a hierarchical application-managed client-side cache is a possibility.WebStorage CHALLENGES WITH TRADITIONAL BROWSER CACHING Traditional browser caches store content based on URLs, which can lead to sub-optimal performance. Take, for example, the popular web performance optimization concept of domain sharding. Domain sharding tricks a browser into opening additional connections by presenting unique domain names for content. If done incorrectly, the same object can be downloaded across multiple domains, thereby eliminating the benefits of caching content. For example, if the same object is requested once from static1.example.com and on a future visit the content is requested from static3.example.com, the object will be treated as a new object even though there is a perfectly valid copy sitting in cache. This doesn’t just happen with domain sharding. In an analysis of approximately 1 million cached images, JavaScript files, stylesheets and custom fonts, it was discovered that approximately 65,000 objects had the same content but different names. This results in multiple copies of the same object sitting in cache, as the same object existed in multiple directories, resulting in unique cache names.

When an object expires from the browser cache, it requires revalidation; this is traditionally done by an If-None-Match or If- Modified-Since header in the request. If the resource on the server matches, this results in a 304 Not-Modified HTTP status code. Performing a network round trip to find out that the object that is already in the cache is a waste of network resources and bandwidth. On a high-latency link this could add a considerable amount of time to the page load. Certain resources on a page are more important than others. If your web page uses a large hero image, ensuring that it is in the cache and loads with a high priority can make the page feel like it is loading faster. When a browser only looks at metrics such as popularity and age, resources in the critical path of page load can be ignored and evicted from cache. hero image BENEFITS OF APPLICATION-AWARE CACHING When an application is in control of the caching, it is possible to index based on a hash of the resource as opposed to a name, eliminating duplication of cached content. Controlling the cache key also enables the application to send the validation information for resources with the HTML, eliminating costly revalidation requests. When the application controls the cache, not only does performance improve, but the application can make more intelligent decisions regarding what to serve. For example, If an application has heavy blocking JavaScript code in the HEAD section of the HTML, an application-aware caching strategy can determine the optimal storage mechanism to serve up JavaScript faster, enabling the web page to be displayed much earlier. In other cases, if your application uses a series of rotating images on the home page, the application can select an image that is in the cache and download other images in the background to be used on future visits.

INTRODUCING INSTANTLOAD InstantLoad is a client-side hierarchical cache system that utilizes different HTML5 storage types, including localStorage, sessionStorage, IndexedDB and FileSystem API, depending on the requirements of the request. The caching system takes into account the browser and the resources being requested, and can adapt and learn over time to become even more valuable when delivering high-performing web applications. The hierarchy is based on the performance of the different layers, with the highest-performing storage at the top. For example, localStorage and sessionStorage both perform significantly better than traditional browser caches. Keys are mapped to arbitrary objects containing metadata related to priority, expiry, validation and eviction. The diagram below provides a high-level diagram of the various layers:

The browser is instructed to use InstantLoad via Nanovisor.js. The Nanovisor is a small, lightweight JavaScript client that detects the capabilities of the browser and its available storage systems. Based on the storage available and an in-depth understanding of the application, InstantLoad is able to seamlessly and transparently redirect critical elements of the application to the appropriate storage location. The end result is faster loading pages and an improved quality of experience for end users without having to rewrite the application. RESULTS We tested 15 websites from the Alexa top 500 global sites in a controlled environment to see the impact InstantLoad would have. The results in the chart below show improvement across the board for all sites tested. Where improvements are small, the majority of content was being served from the browser cache as opposed to localStorage or sessionStorage, based on the resources not being referenced directly within the HTML but via JavaScript. Alexa top 500

With a few small application changes, resources can be cached using the application-aware InstantLoad cache as opposed to the standard browser cache, providing page load improvements of between 30-60%. Currently, InstantLoad offering is available for loading scripts in the HEAD of the HTML and it leverages localStorage for fast loading. Check out our recently published technical publication from the IEEE International Conference on Multimedia and Expo (ICME 2015): “A Case For Application-Managed Cache For Browser” for a more in-depth discussion. IEEE International Conference on Multimedia and Expo (ICME 2015)A Case For Application-Managed Cache For Browser Visit our Blog to learn more