

At Yahoo!, properties that moved static content off their application web servers to a CDN (both 3rd party as mentioned above as well as Yahoo’s own CDN) improved end-user response times by 20% or more. For start-up companies and private web sites, the cost of a CDN service can be prohibitive, but as your target audience grows larger and becomes more global, a CDN is necessary to achieve fast response times. Some large Internet companies own their own CDN, but it's cost-effective to use a CDN service provider, such as Akamai Technologies, EdgeCast, or level3. For example, the server with the fewest network hops or the server with the quickest response time is chosen. The server selected for delivering content to a specific user is typically based on a measure of network proximity. This not only achieves a bigger reduction in response times, but it's easier thanks to content delivery networks.Ī content delivery network (CDN) is a collection of web servers distributed across multiple locations to deliver content more efficiently to users. Rather than starting with the difficult task of redesigning your application architecture, it's better to first disperse your static content. Remember that 80-90% of the end-user response time is spent downloading all the components in the page: images, stylesheets, scripts, Flash, etc. Attempts to reduce the distance between users and your content could be delayed by, or never pass, this application architecture step. Depending on the application, changing the architecture could include daunting tasks such as synchronizing session state and replicating database transactions across server locations. But where should you start?Īs a first step to implementing geographically dispersed content, don't attempt to redesign your web application to work in a distributed architecture. Deploying your content across multiple, geographically dispersed servers will make your pages load faster from the user's perspective. The user's proximity to your web server has an impact on response times. Top | discuss this rule Use a Content Delivery Network Making your page fast for these first time visitors is key to a better user experience. As described in Tenni Theurer's blog post Browser Cache Usage - Exposed!, 40-60% of daily visitors to your site come in with an empty cache. This is the most important guideline for improving performance for first time visitors. Reducing the number of HTTP requests in your page is the place to start. Inline images are not yet supported across all major browsers. Combining inline images into your (cached) stylesheets is a way to reduce HTTP requests and avoid increasing the size of your pages. This can increase the size of your HTML document. Inline images use the data: URL scheme to embed the image data in the actual page.

Using image maps for navigation is not accessible too, so it's not recommended. Defining the coordinates of image maps can be tedious and error prone. Image maps only work if the images are contiguous in the page, such as a navigation bar. The overall size is about the same, but reducing the number of HTTP requests speeds up the page. Image maps combine multiple images into a single image. Combine your background images into a single image and use the CSS background-image and background-position properties to display the desired image segment. Combining files is more challenging when the scripts and stylesheets vary from page to page, but making this part of your release process improves response times.ĬSS Sprites are the preferred method for reducing the number of image requests. But is there a way to build pages with richer content while also achieving fast response times? Here are some techniques for reducing the number of HTTP requests, while still supporting rich page designs.Ĭombined files are a way to reduce the number of HTTP requests by combining all scripts into a single script, and similarly combining all CSS into a single stylesheet. One way to reduce the number of components in the page is to simplify the page's design. Reducing the number of components in turn reduces the number of HTTP requests required to render the page. Most of this time is tied up in downloading all the components in the page: images, stylesheets, scripts, Flash, etc. Pack Components Into a Multipart DocumentĨ0% of the end-user response time is spent on the front-end.
