SlideShare une entreprise Scribd logo
1  sur  93
From Fast to SPDY

   Ido Safruti,

   Mike Belshe,
SPDY
SPDY
 ee
Agenda

 Challenges of HTTP/1.1
 SPDY
 Some data, and results
 How we tune today
 What’s next
rfc2616: HTTP/1.1
  drafted:1998
  released June 1999
What else was there in 1998
What else was there in 1998
What else was there in 1998
What else was there in 1998
What else was there in 1998
What else was there in 1998
What else was there in 1998




                              http://web.archive.org/web/19980425182703/http://geocities.com/
What else was there in 1998




                                                   4/25/1998
                                                   no external scripts or css files
                                                   20 images, ~65KB entire page




                              http://web.archive.org/web/19980425182703/http://geocities.com/
Did They Plan for That!?
HTTP/1.1
 Compression
 Headers
 Poor connection management
  Only one request can be done at a time (Half duplex)
  Particularly important on high latency links (mobile)
  short lived connections
 security - optional
Compression




 * http://code.google.com/speed/articles/web-metrics.html + Cotendo measurements
Compression
Optional
Only for response body
 ~99% of browsers support




 * http://code.google.com/speed/articles/web-metrics.html + Cotendo measurements
Compression
Optional
Only for response body
 ~99% of browsers support
 Particularly important on small pipes (mobile)




 * http://code.google.com/speed/articles/web-metrics.html + Cotendo measurements
Compression
Optional
Only for response body
 ~99% of browsers support
 Particularly important on small pipes (mobile)

15%-30% of responses not compressed for no good reason!*
  for SSL even worse



 * http://code.google.com/speed/articles/web-metrics.html + Cotendo measurements
Compression
Optional
Only for response body
 ~99% of browsers support
 Particularly important on small pipes (mobile)

15%-30% of responses not compressed for no good reason!*
  for SSL even worse
no request compression

 * http://code.google.com/speed/articles/web-metrics.html + Cotendo measurements
Compression
Optional
Only for response body
 ~99% of browsers support
 Particularly important on small pipes (mobile)

15%-30% of responses not compressed for no good reason!*
  for SSL even worse
no request compression
no header compression
 * http://code.google.com/speed/articles/web-metrics.html + Cotendo measurements
Headers
 Redundant
 Repeat on EVERY request/response
 Can’t compress


 User-agent
 Cookies
HTTP Connection - under the hood




 Client            Server
HTTP Connection - under the hood

                            TCP Connect + Request = 1.5 RTT
                            TCP Connect + SSL Connect + Request = 3.5 RTT




 Client            Server
HTTP Connection - under the hood

                            TCP Connect + Request = 1.5 RTT
                            TCP Connect + SSL Connect + Request = 3.5 RTT




 Client            Server
HTTP Connection - under the hood

                            TCP Connect + Request = 1.5 RTT
                            TCP Connect + SSL Connect + Request = 3.5 RTT
                            Request/Response = 0.5 RTT




 Client            Server
HTTP Connection - under the hood

                            TCP Connect + Request = 1.5 RTT
                            TCP Connect + SSL Connect + Request = 3.5 RTT
                            Request/Response = 0.5 RTT

                      }



 Client            Server
HTTP Connection - under the hood

                            TCP Connect + Request = 1.5 RTT
                            TCP Connect + SSL Connect + Request = 3.5 RTT
                            Request/Response = 0.5 RTT

                      }
                      }


 Client            Server
HTTP Connection - under the hood

                            TCP Connect + Request = 1.5 RTT
                            TCP Connect + SSL Connect + Request = 3.5 RTT
                            Request/Response = 0.5 RTT

                      }     Spun additional connections

                      }


 Client            Server
HTTP Connection - under the hood

                            TCP Connect + Request = 1.5 RTT
                            TCP Connect + SSL Connect + Request = 3.5 RTT
                            Request/Response = 0.5 RTT
                            Slow Start - 30KB ~ 4 RTT (vs. 1 RTT warm)
                            Spun additional connections




 Client            Server
“Lost” Capacity on each RTT
User Data:                                               User Data:
average bandwidth                                        average RTT
                           BW Mbps                                               RTT ms
       Global                  1.9                          Broadband              30
         US                    5.1                        Coast-to-Coast          100
   Mobile - US                 1.1                        3G device-GW           80-200
   Mobile - EU                 ~2
Source: State of the Internet, Q4 2010
http://www.akamai.com/stateoftheinternet/



                             US Broadband:                  63.7KB
                             US Mobile:                     27.5KB
                             Average obj size                8.1KB
                             Source: HTTP Archive, 6/1/2011 data for Top 1,000
                             http://httparchive.org
Security is optional




http://desktopsecuritysoftwareguide.com/wp-content/uploads/2010/04/Padlock.jpg
Enters SPDY!
Requirements
 Avoid requiring the website author to change content
  Allow for incremental changes
  Performing "better" with content changes is okay
  Performing "worse" without content changes is unacceptable


 Perform always better, never worse than HTTP

 Drop-in replacement from webapp's point of view
  Changing the web server/application server is inevitable and therefore
   acceptable
What is SPDY?
 Goal: Reduce Web Page Load time.

 Multiplexing
   Better utilize client connections
 Compression
   HTTP headers are excessive
   Uplink bandwidth is limited
 Prioritization
   Today the browser holds back
   Priorities enable multiplexing
 Encrypted & Authenticated
   Eavesdropping at the Cafe must be stopped
 Server Push
   Websites do some of this today with data URLs
Deployment Status
Deployment Status
 Google
   Enabled for all Google SSL traffic
   On by default since Chrome 6
Deployment Status
 Google
   Enabled for all Google SSL traffic
   On by default since Chrome 6
 CDNs/Service providers:
   Cotendo
Deployment Status
 Google
   Enabled for all Google SSL traffic
   On by default since Chrome 6
 CDNs/Service providers:
   Cotendo
 Server implementations:
   Strangeloop
   SPDY Proxy available
   Others: C++, Python, Ruby, Go
Deployment Status
 Google
   Enabled for all Google SSL traffic
   On by default since Chrome 6
 CDNs/Service providers:
   Cotendo
 Server implementations:
   Strangeloop
   SPDY Proxy available
   Others: C++, Python, Ruby, Go
 Client implementation
   Chrome
   Android coming...
Results
Yahoo! Homepage, over broadband network
Yahoo! homepage
 HTTP


 Broadband
 RTT = 20ms




Page Load: 1.23sec
Yahoo! homepage
 SPDY
 (via Cotendo)

 Broadband
 RTT = 20ms



Page Load: 1.21sec


       -2%
Amazon.com Homepage, over 3G network
Amazon.com Homepage
 HTTP


 3G, AT&T
 RTT = 200+ms



Page Load: 12.50sec
Amazon.com Homepage
 SPDY
 (via Cotendo)

 3G AT&T
 RTT = 200+ms



Page Load: 6.26sec


       -49%
HTTPS vs SPDY (Production)
Increasing Parallelism
Less is More - Conns, Bytes, Packets
Not Too Shabby WebSockets
 docs.google.com has a "hanging get" for every doc open
 how to scale beyond 6 connections per domain?
  docs[1-N].google.com

 gets expensive, complicated, and is horribly inefficient

 SPDY is easy, works great, efficient

 Header compression mitigates the inefficiency of a hanging GET
Can't We Address Latency & Security Separately?
Can't We Address Latency & Security Separately?



                    No.
Can't We Address Latency & Security Separately?
  If eavesdropping in the cafe is still possible in 2020 with trivial tools, we have
   failed our users.

  Security is not just for banks!
   Social/Mail/Content is a major target
   example: Comodo attack

  Firesheep tools make sniffing easy
  Major content providers want privacy
   Facebook opt-in
   Twitter opt-in
   Google working toward 100%
How we tune today
High Performance Web Sites
 1.Make fewer HTTP requests
 2.Use CDN
 3.Add expires header
 4.Gzip Components
 5.Put stylesheets at the top
 6.Put scripts at the bottom
 7.Avoid CSS expressions
 8.Make JS and CSS external
 9.Reduce DNS lookups
 10.Minify JS
 11.Avoid redirects
 12.Remove duplicate scripts
 13.Configure Etags
 14.Make Ajax cacheable
 15.Sharding domains
High Performance Web Sites
 1.Make fewer HTTP requests
 2.Use CDN
 3.Add expires header
 4.Gzip Components

                          Du
 5.Put stylesheets at the top
 6.Put scripts at the bottom e
 7.Avoid CSS expressions       To
 8.Make JS and CSS external         HT
 9.Reduce DNS lookups                 TP
 10.Minify JS
                                           Li
 11.Avoid redirects                          m
 12.Remove duplicate scripts                  ita
 13.Configure Etags                              tio
 14.Make Ajax cacheable                             ns
 15.Sharding domains                                  !
Firetruck
Domain Sharding
Domain Sharding
 Pros:
  Parallelism in HTTP
  Cookieless domains for static content
Domain Sharding
 Pros:
  Parallelism in HTTP
  Cookieless domains for static content
Domain Sharding
 Pros:
  Parallelism in HTTP
  Cookieless domains for static content


 Cons:
  DNS time
  Connection establishment overhead
    TCP slowstart / warmup
    SSL
  maintaining many connections
  user cache
  Prevents browser optimizations
Reduce number of requests
 Inlining
 Spriting
 Data URLs
 Combining javascripts and CSS files


 Cons:
   reduced cache efficiency
   Complicated
New Class of FEO
Rethink your optimizations

 As rules change, your need to re-evaluate your best practices
    13 years is a long time! start at the beginning...


 But also presents many new opportunities
    Delivery priorities
    Smart Push
    Simple web code
    Automate!
Image Compression

  Number of Requests                                       Transfer Size in KB



                 Other
                         HTML                                         Other   HTML
                  7.0
                          6.5                                          99      32

                                                                                     Scripts
                                Scripts                                               119
                                 13.0


                                                                                       Stylesheets
                                 Stylesheets
                                                                                            25
                                     3.5




        Images
                                                                     Images
          55.0
                                                                       415




                                               Source: http://httparchive.org/trends.php?s=Top1000
In mobile even stronger!

   Number of Requests                                Transfer Size in KB



              Other HTML
                2                                                      Other
                      4                                                        HTML
                                                                         6
                                                                                42

                           Scripts
                             7


                                                                                            Scripts
                           Stilesheets                                                        80
                                2
                                                            Images
     Images                                                   228
       31                                                                             Stilesheets
                                                                                           20




                                         Source: http://mobile.httparchive.org/trends.php?s=Top1000
Lossy compression is the way to go!


    Billy Hoffman / Zoompf




                                      AP Photo/John Bazemore
Lossy-Compression is
      Not for Everything



http://www.flickr.com/photos/tracy_olson/61056391/
Progressive image compression




             http://images.sixrevisions.com/2010/12/01-02_baseline_vs_progressive.jpg
Client   Server
Client              Server



         Get HTML
Client   Server
Client                     Server


         Get all objects
Client                                 Server




         20%   20%   20%   20%   20%
Client                                 Server




         80%   80%   80%   80%   80%
Summary
 SPDY actually delivers!
 SPDY actually delivers!
    but we are still in the early phases
 SPDY actually delivers!
    but we are still in the early phases
    participate and be part of the solution
 SPDY actually delivers!
    but we are still in the early phases
    participate and be part of the solution
 SPDY actually delivers!
    but we are still in the early phases
    participate and be part of the solution


 Rules CAN be broken. Changes are possible!
 SPDY actually delivers!
    but we are still in the early phases
    participate and be part of the solution


 Rules CAN be broken. Changes are possible!
    HTTP is built into the internet architecture, it can’t be changed.
 SPDY actually delivers!
    but we are still in the early phases
    participate and be part of the solution


 Rules CAN be broken. Changes are possible!
    HTTP is built into the internet architecture, it can’t be changed.
    What’s next?
 SPDY actually delivers!
    but we are still in the early phases
    participate and be part of the solution


 Rules CAN be broken. Changes are possible!
    HTTP is built into the internet architecture, it can’t be changed.
    What’s next?
 SPDY actually delivers!
    but we are still in the early phases
    participate and be part of the solution


 Rules CAN be broken. Changes are possible!
    HTTP is built into the internet architecture, it can’t be changed.
    What’s next?


 Opens the door to implement new class of optimizations
 SPDY actually delivers!
    but we are still in the early phases
    participate and be part of the solution


 Rules CAN be broken. Changes are possible!
    HTTP is built into the internet architecture, it can’t be changed.
    What’s next?


 Opens the door to implement new class of optimizations
 SPDY actually delivers!
    but we are still in the early phases
    participate and be part of the solution


 Rules CAN be broken. Changes are possible!
    HTTP is built into the internet architecture, it can’t be changed.
    What’s next?


 Opens the door to implement new class of optimizations


 Get engaged NOW!
Measurement - Proving us Right
 No 3rd party tools (yet)!


 Chrome developer tools
    not good for large scale data...


 w3c Web Performance tools - Navigation Timing
    Supported on IE9, and Chrome 11+
    http://w3c-test.org/webperf/specs/NavigationTiming/


 Site metrics:
    Google Analytics
Ido Safruti, ido@cotendo.com

Mike Belshe, mbelshe@google.com

Contenu connexe

Dernier

How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 

Dernier (20)

How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 

En vedette

Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...DevGAMM Conference
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationErica Santiago
 
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellSaba Software
 

En vedette (20)

Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
 
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
 

From Fast to SPDY - Velocity 2011

  • 1. From Fast to SPDY Ido Safruti, Mike Belshe,
  • 4. Agenda  Challenges of HTTP/1.1  SPDY  Some data, and results  How we tune today  What’s next
  • 5. rfc2616: HTTP/1.1 drafted:1998 released June 1999
  • 6. What else was there in 1998
  • 7. What else was there in 1998
  • 8. What else was there in 1998
  • 9. What else was there in 1998
  • 10. What else was there in 1998
  • 11. What else was there in 1998
  • 12. What else was there in 1998 http://web.archive.org/web/19980425182703/http://geocities.com/
  • 13. What else was there in 1998 4/25/1998 no external scripts or css files 20 images, ~65KB entire page http://web.archive.org/web/19980425182703/http://geocities.com/
  • 14. Did They Plan for That!?
  • 15. HTTP/1.1  Compression  Headers  Poor connection management  Only one request can be done at a time (Half duplex)  Particularly important on high latency links (mobile)  short lived connections  security - optional
  • 17. Compression Optional Only for response body ~99% of browsers support * http://code.google.com/speed/articles/web-metrics.html + Cotendo measurements
  • 18. Compression Optional Only for response body ~99% of browsers support Particularly important on small pipes (mobile) * http://code.google.com/speed/articles/web-metrics.html + Cotendo measurements
  • 19. Compression Optional Only for response body ~99% of browsers support Particularly important on small pipes (mobile) 15%-30% of responses not compressed for no good reason!* for SSL even worse * http://code.google.com/speed/articles/web-metrics.html + Cotendo measurements
  • 20. Compression Optional Only for response body ~99% of browsers support Particularly important on small pipes (mobile) 15%-30% of responses not compressed for no good reason!* for SSL even worse no request compression * http://code.google.com/speed/articles/web-metrics.html + Cotendo measurements
  • 21. Compression Optional Only for response body ~99% of browsers support Particularly important on small pipes (mobile) 15%-30% of responses not compressed for no good reason!* for SSL even worse no request compression no header compression * http://code.google.com/speed/articles/web-metrics.html + Cotendo measurements
  • 22. Headers  Redundant  Repeat on EVERY request/response  Can’t compress  User-agent  Cookies
  • 23. HTTP Connection - under the hood Client Server
  • 24. HTTP Connection - under the hood TCP Connect + Request = 1.5 RTT TCP Connect + SSL Connect + Request = 3.5 RTT Client Server
  • 25. HTTP Connection - under the hood TCP Connect + Request = 1.5 RTT TCP Connect + SSL Connect + Request = 3.5 RTT Client Server
  • 26. HTTP Connection - under the hood TCP Connect + Request = 1.5 RTT TCP Connect + SSL Connect + Request = 3.5 RTT Request/Response = 0.5 RTT Client Server
  • 27. HTTP Connection - under the hood TCP Connect + Request = 1.5 RTT TCP Connect + SSL Connect + Request = 3.5 RTT Request/Response = 0.5 RTT } Client Server
  • 28. HTTP Connection - under the hood TCP Connect + Request = 1.5 RTT TCP Connect + SSL Connect + Request = 3.5 RTT Request/Response = 0.5 RTT } } Client Server
  • 29. HTTP Connection - under the hood TCP Connect + Request = 1.5 RTT TCP Connect + SSL Connect + Request = 3.5 RTT Request/Response = 0.5 RTT } Spun additional connections } Client Server
  • 30. HTTP Connection - under the hood TCP Connect + Request = 1.5 RTT TCP Connect + SSL Connect + Request = 3.5 RTT Request/Response = 0.5 RTT Slow Start - 30KB ~ 4 RTT (vs. 1 RTT warm) Spun additional connections Client Server
  • 31. “Lost” Capacity on each RTT User Data: User Data: average bandwidth average RTT BW Mbps RTT ms Global 1.9 Broadband 30 US 5.1 Coast-to-Coast 100 Mobile - US 1.1 3G device-GW 80-200 Mobile - EU ~2 Source: State of the Internet, Q4 2010 http://www.akamai.com/stateoftheinternet/ US Broadband: 63.7KB US Mobile: 27.5KB Average obj size 8.1KB Source: HTTP Archive, 6/1/2011 data for Top 1,000 http://httparchive.org
  • 34. Requirements  Avoid requiring the website author to change content Allow for incremental changes Performing "better" with content changes is okay Performing "worse" without content changes is unacceptable  Perform always better, never worse than HTTP  Drop-in replacement from webapp's point of view  Changing the web server/application server is inevitable and therefore acceptable
  • 35. What is SPDY?  Goal: Reduce Web Page Load time.  Multiplexing  Better utilize client connections  Compression  HTTP headers are excessive  Uplink bandwidth is limited  Prioritization  Today the browser holds back  Priorities enable multiplexing  Encrypted & Authenticated  Eavesdropping at the Cafe must be stopped  Server Push  Websites do some of this today with data URLs
  • 37. Deployment Status  Google  Enabled for all Google SSL traffic  On by default since Chrome 6
  • 38. Deployment Status  Google  Enabled for all Google SSL traffic  On by default since Chrome 6  CDNs/Service providers:  Cotendo
  • 39. Deployment Status  Google  Enabled for all Google SSL traffic  On by default since Chrome 6  CDNs/Service providers:  Cotendo  Server implementations:  Strangeloop  SPDY Proxy available  Others: C++, Python, Ruby, Go
  • 40. Deployment Status  Google  Enabled for all Google SSL traffic  On by default since Chrome 6  CDNs/Service providers:  Cotendo  Server implementations:  Strangeloop  SPDY Proxy available  Others: C++, Python, Ruby, Go  Client implementation  Chrome  Android coming...
  • 42. Yahoo! Homepage, over broadband network
  • 43. Yahoo! homepage HTTP Broadband RTT = 20ms Page Load: 1.23sec
  • 44. Yahoo! homepage SPDY (via Cotendo) Broadband RTT = 20ms Page Load: 1.21sec -2%
  • 46. Amazon.com Homepage HTTP 3G, AT&T RTT = 200+ms Page Load: 12.50sec
  • 47. Amazon.com Homepage SPDY (via Cotendo) 3G AT&T RTT = 200+ms Page Load: 6.26sec -49%
  • 48. HTTPS vs SPDY (Production)
  • 50. Less is More - Conns, Bytes, Packets
  • 51. Not Too Shabby WebSockets  docs.google.com has a "hanging get" for every doc open  how to scale beyond 6 connections per domain?  docs[1-N].google.com  gets expensive, complicated, and is horribly inefficient  SPDY is easy, works great, efficient  Header compression mitigates the inefficiency of a hanging GET
  • 52. Can't We Address Latency & Security Separately?
  • 53. Can't We Address Latency & Security Separately? No.
  • 54. Can't We Address Latency & Security Separately?  If eavesdropping in the cafe is still possible in 2020 with trivial tools, we have failed our users.  Security is not just for banks!  Social/Mail/Content is a major target  example: Comodo attack  Firesheep tools make sniffing easy  Major content providers want privacy  Facebook opt-in  Twitter opt-in  Google working toward 100%
  • 55. How we tune today
  • 56. High Performance Web Sites 1.Make fewer HTTP requests 2.Use CDN 3.Add expires header 4.Gzip Components 5.Put stylesheets at the top 6.Put scripts at the bottom 7.Avoid CSS expressions 8.Make JS and CSS external 9.Reduce DNS lookups 10.Minify JS 11.Avoid redirects 12.Remove duplicate scripts 13.Configure Etags 14.Make Ajax cacheable 15.Sharding domains
  • 57. High Performance Web Sites 1.Make fewer HTTP requests 2.Use CDN 3.Add expires header 4.Gzip Components Du 5.Put stylesheets at the top 6.Put scripts at the bottom e 7.Avoid CSS expressions To 8.Make JS and CSS external HT 9.Reduce DNS lookups TP 10.Minify JS Li 11.Avoid redirects m 12.Remove duplicate scripts ita 13.Configure Etags tio 14.Make Ajax cacheable ns 15.Sharding domains !
  • 60. Domain Sharding  Pros:  Parallelism in HTTP  Cookieless domains for static content
  • 61. Domain Sharding  Pros:  Parallelism in HTTP  Cookieless domains for static content
  • 62. Domain Sharding  Pros:  Parallelism in HTTP  Cookieless domains for static content  Cons:  DNS time  Connection establishment overhead  TCP slowstart / warmup  SSL  maintaining many connections  user cache  Prevents browser optimizations
  • 63. Reduce number of requests  Inlining  Spriting  Data URLs  Combining javascripts and CSS files  Cons:  reduced cache efficiency  Complicated
  • 65. Rethink your optimizations  As rules change, your need to re-evaluate your best practices  13 years is a long time! start at the beginning...  But also presents many new opportunities  Delivery priorities  Smart Push  Simple web code  Automate!
  • 66. Image Compression Number of Requests Transfer Size in KB Other HTML Other HTML 7.0 6.5 99 32 Scripts Scripts 119 13.0 Stylesheets Stylesheets 25 3.5 Images Images 55.0 415 Source: http://httparchive.org/trends.php?s=Top1000
  • 67. In mobile even stronger! Number of Requests Transfer Size in KB Other HTML 2 Other 4 HTML 6 42 Scripts 7 Scripts Stilesheets 80 2 Images Images 228 31 Stilesheets 20 Source: http://mobile.httparchive.org/trends.php?s=Top1000
  • 68. Lossy compression is the way to go! Billy Hoffman / Zoompf AP Photo/John Bazemore
  • 69. Lossy-Compression is Not for Everything http://www.flickr.com/photos/tracy_olson/61056391/
  • 70. Progressive image compression http://images.sixrevisions.com/2010/12/01-02_baseline_vs_progressive.jpg
  • 71. Client Server
  • 72. Client Server Get HTML
  • 73. Client Server
  • 74. Client Server Get all objects
  • 75. Client Server 20% 20% 20% 20% 20%
  • 76. Client Server 80% 80% 80% 80% 80%
  • 77.
  • 78.
  • 80.
  • 81.  SPDY actually delivers!
  • 82.  SPDY actually delivers!  but we are still in the early phases
  • 83.  SPDY actually delivers!  but we are still in the early phases  participate and be part of the solution
  • 84.  SPDY actually delivers!  but we are still in the early phases  participate and be part of the solution
  • 85.  SPDY actually delivers!  but we are still in the early phases  participate and be part of the solution  Rules CAN be broken. Changes are possible!
  • 86.  SPDY actually delivers!  but we are still in the early phases  participate and be part of the solution  Rules CAN be broken. Changes are possible!  HTTP is built into the internet architecture, it can’t be changed.
  • 87.  SPDY actually delivers!  but we are still in the early phases  participate and be part of the solution  Rules CAN be broken. Changes are possible!  HTTP is built into the internet architecture, it can’t be changed.  What’s next?
  • 88.  SPDY actually delivers!  but we are still in the early phases  participate and be part of the solution  Rules CAN be broken. Changes are possible!  HTTP is built into the internet architecture, it can’t be changed.  What’s next?
  • 89.  SPDY actually delivers!  but we are still in the early phases  participate and be part of the solution  Rules CAN be broken. Changes are possible!  HTTP is built into the internet architecture, it can’t be changed.  What’s next?  Opens the door to implement new class of optimizations
  • 90.  SPDY actually delivers!  but we are still in the early phases  participate and be part of the solution  Rules CAN be broken. Changes are possible!  HTTP is built into the internet architecture, it can’t be changed.  What’s next?  Opens the door to implement new class of optimizations
  • 91.  SPDY actually delivers!  but we are still in the early phases  participate and be part of the solution  Rules CAN be broken. Changes are possible!  HTTP is built into the internet architecture, it can’t be changed.  What’s next?  Opens the door to implement new class of optimizations  Get engaged NOW!
  • 92. Measurement - Proving us Right  No 3rd party tools (yet)!  Chrome developer tools  not good for large scale data...  w3c Web Performance tools - Navigation Timing  Supported on IE9, and Chrome 11+  http://w3c-test.org/webperf/specs/NavigationTiming/  Site metrics:  Google Analytics
  • 93. Ido Safruti, ido@cotendo.com Mike Belshe, mbelshe@google.com