is#the#web#http/2#yet?# - tma conferences · limitaons# • locaon...
TRANSCRIPT
![Page 1: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/1.jpg)
Is the Web HTTP/2 yet?
Jeremy Blackburn and Ma<eo Varvello K. Schomp, D. Naylor, A. Finamore, K. Papagiannaki
![Page 2: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/2.jpg)
Outline
• HTTP History • HTTP/2 Background • What, why and how? • HTTP/2 AdopMon • HTTP/2 Content Analysis • HTTP/2 Performance Analysis
![Page 3: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/3.jpg)
History
1965
• Hypertext, HTTP, World Wide Web • HTTP funcMons as a request–response protocol in the client–server compuMng model
![Page 4: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/4.jpg)
History
• TCP connecMon on port 80 • ASCII protocol – Simply telnet (1969) for debugging
• Only one method: GET – GET an HTML page from a server
1965
![Page 5: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/5.jpg)
History • RFC1945 describes the “common usage’” of HTTP/1.0, not a formal standard
• Introduce POST and HEAD • Content-Encoding header
– end-‐to-‐end content-‐coding(s) used for a message • Simple caching
– server may mark a response using the Expires header – cache can include If-Modified-Since header to check cache validity
1965
![Page 6: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/6.jpg)
History • IETF Drae Standard • Add methods: OPTIONS, PUT, DELETE, TRACE and CONNECT
– HTTPS through HTTP proxy • Pipelining
– MulMple request over a single (TCP) connecMon • New header opMons
– Range requests – Hop-‐by-‐hop headers
• Clarify and add flexibility to caching operaMons • Upgrade request header
– Ease deployment of future protocols
1965 2000
![Page 7: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/7.jpg)
History
1965 2000
Num
ber
of
Dom
ain
s
Breakdown by Protocol Version (Announced Support)Click and drag in the plot area to zoom in
H2 Draft 14
Jan '15 Jan '16May '15 Sep '15
0k
20k
40k
60k
80k
Highcharts.com
2014-‐2015
![Page 8: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/8.jpg)
History
1965 2000
Num
ber
of
Dom
ain
s
Breakdown by Protocol Version (Announced Support)Click and drag in the plot area to zoom in
H2 Draft 14 H2 Draft 15 H2 Draft 16 H2 Draft 17
Jan '15 Jan '16May '15 Sep '15
0k
20k
40k
60k
80k
Highcharts.com
2014-‐2015
![Page 9: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/9.jpg)
History
1965 2000
Num
ber
of
Dom
ain
s
Breakdown by Protocol Version (Announced Support)Click and drag in the plot area to zoom in
H2 Draft 14 H2 Draft 15 H2 Draft 16 H2 Draft 17 H2
Jan '15 Jan '16May '15 Sep '15
0k
50k
100k
150k
200k
Highcharts.com
2014-‐2015
![Page 10: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/10.jpg)
Outline
• HTTP History • HTTP/2 Background • What, why and how? • HTTP/2 AdopMon • HTTP/2 Content Analysis • HTTP/2 Performance Analysis
![Page 11: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/11.jpg)
Binary Protocol
• H2 is binary rather than ASCII • Pros: – efficient parsing – lighter network footprint – less prune to security issues due to unsaniMzed input strings
![Page 12: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/12.jpg)
Header Compression
• HTTP is state-‐less, thus repeMMve – Each object needs to carry header informaMon – HTTP/2 is state-‐less as well
• HTTP/2 reduces redundant informaMon shared between objects using compression – HPACK7: solve BREACH and CRIME vulnerabiliMes with SPDY (gzip)
![Page 13: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/13.jpg)
MulMplexing • Head of line blocking – Any early request for a large object can delay all subsequent pipelined requests
– Clients open several TCP connecMons in parallel (6 in Chrome and 15 in Firefox)
– Overhead of mulMple TCP connecMons (TCP state, TLS handshake and setup)
• H2 opens a single TCP connecMon to a domain where it mul%plexes requests and responses (streams)
![Page 14: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/14.jpg)
Priority
• A client can specify which streams are most important
• It allows the client to load important objects (e.g., CSS and JavaScript) earlier
![Page 15: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/15.jpg)
Push
• It allows the server to push objects before the client requests them – Server knows what the client will ask in the future
![Page 16: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/16.jpg)
HTTP/2 Background – Summary • Binary protocol – efficient parsing, light network footprint, less prune to security issues due to unsaniMzed input strings
• Header compression – reduces redundant informaMon shared between objects
• Mul%plexing – opens a single TCP connecMon to a domain where it mul%plexes requests and responses
• Priority – allows the client to load important objects (e.g., CSS and JavaScript) earlier
• Server push – allows the server to push objects before the client requests them
![Page 17: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/17.jpg)
Outline
• History • HTTP/2 Background • What, Why and How? • HTTP/2 AdopMon • HTTP/2 Content Analysis • HTTP/2 Performance Analysis
![Page 18: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/18.jpg)
What?
• Monitored HTTP/2 (H2) adopMon – Alexa top 1 million* websites on a daily basis
• Content and performance analysis – Subset of website “truly” supporMng H2
• Built a website – h<p://isthewebh<p2yet.com/
![Page 19: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/19.jpg)
Why?
• Who is behind H2? – Unique chance to understand how a new protocol is adopted in the modern Web
• Is H2 bringing any performance benefit? • Did web content change with H2 adopMon? – Are H1 hack (e.g., inlining and domain sharding) sMll used?
• Is there any interest in H2-‐in-‐the-‐clear (H2C)?
![Page 20: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/20.jpg)
How?
![Page 21: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/21.jpg)
Phase 1
• Challenges are scale and speed – Alexa’s top 1M, daily
• We build prober – Bash tool for ALPN/ NPN negoMaMons – Run on PlanetLab instrumented by a “tracker”
![Page 22: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/22.jpg)
Phase 2
• Small(er) scale (for now) – FracMon of sites announcing H2 support
• We build h2-‐lite – a Mny H2 client that a<empts to download the root object of a website using H2
– H2 library implemented in Node.js
• Run from Telefonica (Spain) and CMU (USA)
![Page 23: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/23.jpg)
Phase 3 • Small scale (for now) – FracMon of sites with cerMfied H2 support
• Require full machine control: result reproducibility, 3/4g dongle, etc.
• We build chrome-‐loader – Loads pages using Chrome and H1/H2 alternaMvely for N repeMMons
– HAR retrieval via Chrome developer interface – Error/crash management
• It runs from Telefonica (Barcelona, Spain), Case (Cleveland, USA) and CMU (Pi<sburgh, USA)
![Page 24: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/24.jpg)
LimitaMons • Loca:on – H2 adopMon can be impacted by locaMon, e.g., Facebook – Phase 1 tasks are randomly assigned by locaMon (for scalability)
• Limited vantage points – Phase-‐3 only runs from a handful of locaMons
• Scalability – already facing this issue with phase 3 – Increase vantage points – Rethink/opMmize (see lazy strategy in the paper)
• PLT == onLoad() – though this metric is well-‐known and largely used, it is quesMonable in the modern web
![Page 25: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/25.jpg)
Outline
• History • HTTP/2 Background • What, Why and How? • HTTP/2 AdopMon • HTTP/2 Content Analysis • HTTP/2 Performance Analysis
![Page 26: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/26.jpg)
AdopMon
![Page 27: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/27.jpg)
AdopMon
h<p://isthewebh<p2yet.com/measurements/adopMon.html
![Page 28: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/28.jpg)
Outline
• History • HTTP/2 Background • What, Why and How? • HTTP/2 AdopMon • HTTP/2 Content Analysis • HTTP/2 Performance Analysis
![Page 29: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/29.jpg)
Content Analysis – Marcoscopic
![Page 30: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/30.jpg)
Content Analysis -‐-‐ Marcoscopic No significant change over
Mme
![Page 31: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/31.jpg)
Content Analysis – Marcoscopic No significant change over
Mme
More complex websites adopt H2 over Mme
![Page 32: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/32.jpg)
Content Analysis – Microscopic
50th: 18 dom
![Page 33: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/33.jpg)
Content Analysis – Microscopic
50th: 3 obj
![Page 34: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/34.jpg)
Outline
• History • HTTP/2 Background • What, Why and How? • HTTP/2 AdopMon • HTTP/2 Content Analysis • HTTP/2 Performance Analysis
![Page 35: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/35.jpg)
TCP Analysis On average, H2 requires half as
many TCP connec:ons as H1
![Page 36: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/36.jpg)
TCP Analysis
Few sites can be served via a single TCP connec:on
On average, H2 requires half as
many TCP connecMons as H1
![Page 37: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/37.jpg)
TCP Analysis
As high as 100 TCP connec:ons
On average, H2 requires half as
many TCP connecMons as H1
Few sites can be served via a single TCP connecMon
![Page 38: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/38.jpg)
TCP Analysis
20-‐40% of sites with >= 80% of H2 objects are served via a single TCP connec:on
![Page 39: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/39.jpg)
Performance Analysis
• No standardized definiMon of “page load Mme” (PLT) – the Mme from when the user enters a URL in the browser to when the page is displayed
• We approximate PLT as the Mme from when Chrome starts fetching the page to the firing of the JavaScript “onLoad” event – occurs once the page’s embedded resources have been downloaded, but possibly before all objects loaded via scripts are downloaded
![Page 40: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/40.jpg)
Performance Analysis
![Page 41: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/41.jpg)
Performance Analysis
![Page 42: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/42.jpg)
Performance Analysis
25% of the websites “suffer”
due to h2
![Page 43: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/43.jpg)
Performance Analysis
25% of the websites “suffer”
due to h2
More benefits on more challenging network access
(3G)
![Page 44: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/44.jpg)
Performance Analysis – Controlled
More benefits as loss rate increases and available bdw
decreases
![Page 45: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/45.jpg)
The Web is Poorly Defined
• Many challenges to measuring performance • Everyone measures Page Load Time (PLT)
• PLT?!?!?!!? – “onload” event in browser
• “onload” event?!?!?! – “The onload event occurs when an object has been loaded.” – W3Schools
![Page 46: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/46.jpg)
Web Browser Events – Quick Info
• A web page is built from a “DOM” à “Document Object Model” – Root Object à The web page
• <html>…</html>
– Child objects à The “content” • <body><div>Hello World!</div></body>
• Browser fires and receives events from/to different nodes in the DOM
![Page 47: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/47.jpg)
“onload”
• “The load event fires at the end of the document loading process. At this point, all of the objects in the document are in the DOM, and all the images, scripts, links and sub-‐frames have finished loading.” – Mozilla
• OK?!?!?!?
![Page 48: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/48.jpg)
The Problem…
• onload wrt PLT is only for the root object • Many websites these days do things a>er the onload event has fired…
• WHEN IS A PAGE ACTUALLY LOADED?!?!?!
![Page 49: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/49.jpg)
Pathological Example…
![Page 50: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/50.jpg)
![Page 51: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/51.jpg)
Houston, We Have A Problem…
• Yes, the onload event indicates that “all resources are loaded”
• No, the onload event does not mean that a page is “done” as far as humans are concerned!
![Page 52: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/52.jpg)
SpeedIndex for PLT
• Speed Index – Uses “visual completeness” – Makes a video of the page and checks frame-‐by-‐frame – Calculates area under the “visually completed” curve
– end à end Mme in ms – VC = % visually complete
• Not really used in literature that we can tell..
SpeedIndex = 1− VC1000
end∫
![Page 53: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/53.jpg)
SMll… What About HUMANS
• Human percepMon is tricky… – We can only see at around 30 frames per second – But, that doesn’t mean we can’t tell when something is slower!
• Example: Speed up a page by 34% – 2 seconds to load à 1.28 seconds to load – Does it actually ma<er?! Is it perceivably faster?!
![Page 54: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/54.jpg)
eyeorg.net
• Our work in progress to answer how humans perceive web page load Mme
• Basic idea: we crowdsource human eyeballs and have them measure PLT in a variety of ways
• Start off with: “Which is faster?”
![Page 55: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/55.jpg)
What Do We Need To Build? 1. Crawler
2. HAR Capturer
3. Video Encoder
4. Frontend
5. Backend
![Page 56: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/56.jpg)
Crawler
• Similar to the HTTP/2 adopMon crawler
• Set of bash scripts that triggers crawls
• Controls all other operaMons
![Page 57: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/57.jpg)
HAR Capturer
• HTTP Archive format • www.soewareishard.com/blog/har-‐12-‐spec/ • From browser’s perspec%ve • JSON • Lots of info! – Timing – ConnecMons – Protocols – Etc.
![Page 58: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/58.jpg)
How to Capture a HAR?
• Not that simple…
• Chrome allows you to export a HAR – Via developer tools – Can’t really automate though! Requires clicking…
• Chrome Remote Debugging Protocol! – Allows us to hook into Chrome and capture various events
![Page 59: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/59.jpg)
Chrome Remote Debugging Protocol
• Uses WebSockets to push events to a listener – Allows full-‐duplex comms over an HTTP TCP conn – NOT HTTP à Handshake treated as an upgrade
1. Launch chrome with special flag – “-‐-‐remote-‐debugging-‐port=9222”
2. Connect to Chrome 3. Listen for events – All different types of events…
![Page 60: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/60.jpg)
Remote Debugging Protocol Messages
• JSON
• Lots of info
• Many message types…
![Page 61: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/61.jpg)
What Events Do We Care About? • Page.domContentEventFired
– The “DOMContentLoaded” event • Even less well specified than “onload”
• Page.loadEventFired – “onload”
• Network.requestWillBeSent – Browser will make a network request
• Network.dataReceived – The browser got some data from the network
• Network.responseReceived – A full HTTP response is available
• Network.loadingFinished – HTTP request has finished loading (whatever that means)
• Network.loadingFailed – A network request failed to load
![Page 62: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/62.jpg)
Our HAR Capturer (bkPLTHAR)
• Ruby – About 550 LOC
• Uses EventMachine – Gives us an event loop
• Uses Faye WebSocket library – Let’s us talk to Chrome
![Page 63: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/63.jpg)
![Page 64: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/64.jpg)
![Page 65: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/65.jpg)
![Page 66: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/66.jpg)
![Page 67: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/67.jpg)
Capturing Start Of Network Load
![Page 68: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/68.jpg)
Capturing Responses
![Page 69: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/69.jpg)
Gotchas… 1. Chrome gives us weird Mmestamps… – NOT a UNIX Mmestamp – Appears to be “number of seconds since 00:00:00 today” – We discovered an undocumented field that appears in one
message that gives us a UNIX Mmestamp (very weird) 2. Protocol a resource is loaded with is not exposed – Oh wait, it is exposed via parMally documented field…
3. We might receive a Network.loadEventFired before we receive all the Network.responseReceived events – This one took awhile to figure out… – SoluMon: add a bit of a delay aeer onload to keep capturing – Ugly, but best we have right now.
![Page 70: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/70.jpg)
Capturing Video • How do we use a headless browser to capture video?!
• Virtual Frame Buffer (xvy) – Does actually render stuff, but not displayed anywhere
• Use ffmpeg to record the rendering – We tried a variety of methods, e.g., actually copying the framebuffer file
– ffmpeg does things in memory – “no” latency à “guaranteed/stable” framerate – We encode to WebM format
![Page 71: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/71.jpg)
Storing Things
• We are going to build a web applicaMon… • Need to access the data to show to users • Could use flat files I guess… – Would suck… Random access is awful here!
Database Time!!!!!
![Page 72: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/72.jpg)
PostgreSQL
• “World’s most advanced open source RDBMS”
• We have a lot of JSON data (HARs) – Doesn’t map well to typical RDBMS rows/columns
• Postgres 9.2+ offers us a JSON column type – 9.4+ gives us JSONB (a binary version) – Perfect for us!
![Page 73: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/73.jpg)
eyeorg.net -‐ Frontend
• Jekyll – Toolkit for building staMc websites – Gives us templaMng, themes, etc.
• Frontend communicates with backend via AJAX – Hits a web API that returns JSON
![Page 74: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/74.jpg)
eyeorg.net -‐ Backend
• Ruby on Rails – Major funcMonality
• Grape API DSL – DSL to build web APIs – Frontend will access
![Page 75: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/75.jpg)
![Page 76: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/76.jpg)
Pu{ng it all together…
![Page 77: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/77.jpg)
Demo
![Page 78: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/78.jpg)
Preliminary Results
• 43 total respondents
• Ma<eo Demo’d at PAM ‘16 – We got ~30 or so respondents – Not bad!
• Also had some people from our lab use it – Another ~10 respondents
![Page 79: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/79.jpg)
How Were Protocols Distributed A/B?
0
30
60
90
120
a bA or B
coun
tprotocol h1 h2
We are looking for a 50/50 split We got ~54/46 split…
![Page 80: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/80.jpg)
Which Was Faster?
0
30
60
90
H1 H2 No DifferenceWhich is faster?
coun
t
![Page 81: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/81.jpg)
How Do Humans Compare to onload?
0.00
0.25
0.50
0.75
1.00
0
110.7
53
1119
.99
212.5
65
2719
.19
2971
.29
333.0
39
4125
.29
436.8
77
624.9
16
767.3
61
954.1
73
onload delta (ms)
% "C
orre
ct"
![Page 82: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/82.jpg)
Lessons Learned So Far
1. Some people viewed it as a compe%%on – “The goal is to pick the site that is H2!” – This wasn’t what we expected…
2. Some people used the “slow moMon” feature – Kind of gives them “super powers” – SMll trying to decide if we should remove this
3. Go<a be careful with how we load things – Need to make sure that we sync things – Possible soluMon: make a single video
![Page 83: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/83.jpg)
Next Steps
• Deploy to crowdsourcing pla~orm – Mechanical Turk – Crowdflower – …
• Build second experiments where users select when a page has “finished loading” – Compare human derived PLT to SpeedIndex and “onload” Mming
![Page 84: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/84.jpg)
The eyeorg.net Vision • A distributed, crowdsourced pla~orm for measuring PLT with a variety of metrics
• You build an image – Has your custom code (e.g., you modified chrome) – Has some configuraMon
• URLs to crawl • How to choose which videos to display • Whether to clear cache • Network configuraMon (delay, TCP stack, etc...) • …
• Push image to eyeorg.net à get results
![Page 85: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/85.jpg)
Who Did This Work?
Check out “Is The Web HTTP/2 Yet?” from PAM 2016 and
isthewebh<p2yet.com
Check out eyeorg.net and take a test!
![Page 86: Is#the#Web#HTTP/2#yet?# - TMA Conferences · Limitaons# • Locaon #–H2#adopMon#can#be#impacted#by#locaon,# e.g.,#Facebook## – Phase#1#tasks#are#randomly#assigned#by#locaon#(for#](https://reader033.vdocuments.us/reader033/viewer/2022042314/5f02bd777e708231d405c672/html5/thumbnails/86.jpg)
Thank You For Your Time!