Amazon Silk
Developer Guide

Split Browser Architecture

When a traditional browser requests a web page, the browser has to complete a series of resource-intensive, client-side processes before it can display the page. For a typical page request, a browser might perform a DNS look-up, open a series of TCP/IP connections to the server, retrieve resources (HTML, CSS, JavaScript, media files), and use these resources to generate a document object model (DOM). Then the browser’s layout engine renders a layout, and the browser paints the page.

All of these client-server interactions can add up to slow page loads, especially given the limited resources of a mobile device and the increasing size and complexity of modern websites. To load a news page that features many media components and scripts, the browser might need to make several hundred requests. And the initial page load isn’t the only aspect of browsing that consumes system resources. Dynamic modern web pages invite many additional interactions. Users scroll, zoom, and initiate on-page events that result in JavaScript invocations or style recalculations. More and more, web pages are turning into long-running applications.

That's where Amazon Silk comes in. The architecture is designed for both rapid page loading and extended engagement with the page. With Amazon Silk, much of the processing behind page rendering can be performed in the Amazon cloud.

          Image of a traditional browser data flow

Instead of relying on the limited client-side processing power of a mobile device, Amazon Silk leverages the processing power of Amazon EC2 virtual servers. The EC2 servers provide high-performance CPUs, expansive memory, and fat network pipes, all of which help minimize page load times.