H2O - making the Web faster

Kazuho Oku
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
H2O
making  the  Web  faster
DeNA  Co.,  Ltd.
Kazuho  Oku
1	
  
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
Agenda
n  How  H2O  started
n  The  Goal  and  Key  Features
n  Improving  User  Experience  with  HTTP/2
2	
  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
How  H2O  Started
3	
  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
About  H2O
n  H2O  is  a  HTTP  server
⁃  debut  in  late  2014
⁃  supports  HTTP/1  and  HTTP/2
⁃  known  for  its  performance
⁃  developed  by  DeNA  Co.,  Ltd.  and  contributors
"H2O  is  a  new  blazingly  fast  HTTP  server  with  http2  
support  that  shows  potential"
–  http2  explained  by  Daniel  Stenberg
4	
  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
Benchmark
5	
  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
PicoHTTPParser
n  originally  written  for  HTTP::Parser::XS
⁃  the  de-‐‑‒facto  HTTP  parser  of  Plack  servers
n  the  core  of  H2O
6	
  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
Design  philosophy  of  H2O
n  Do  it  right,  from  the  ground  up
n  design  wins  lead  to  higher  performance  with  less  
code
7	
  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
$ wc picohttpparser.[hc]	
596 2077 22192 picohttpparser.c	
86 495 3363 picohttpparser.h	
682 2572 25555 total	
	
$ wc http_parser.[hc]	
2434 7281 70424 http_parser.c	
342 1567 12991 http_parser.h	
2776 8848 83415 total
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
High-‐‑‒level  architecture  of  H2O
n  event-‐‑‒driven
⁃  can  handle  many  connections  concurrently
n  multi-‐‑‒thread
⁃  states  and  upstream  (reverse-‐‑‒proxy)  connections  
are  reused
•  impossible  under  a  multi-‐‑‒process  design
n  multi-‐‑‒protocol
⁃  designed  for  HTTP/2  and  TLS
8	
  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
The  Goal  and  Key  Features
9	
  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
The  goal  of  H2O  is  to  provide...
n  better  performance
⁃  demand  for  handling  more  requests:  
•  IoT,  micro-‐‑‒services,  etc.
n  better  user  experience
⁃  faster  content  delivery  using  HTTP/2
n  ease  to  use  and  configure
⁃  TLS  (OCSP  stapling,  record  size  tuning,  
chacha20/poly1305,  ...)
⁃  dynamic  reconfiguration
10	
  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
Key  features  of  H2O
n  excellent  protocol  implementation
⁃  very  fast  HTTP/1
⁃  one  of  the  leading  implementations  of  HTTP/2
n  optimally  configured  for  HTTPS
⁃  enabled  by  default:  OCSP  stapling,  record  size  
tuning,  chacha20/poly1305,  ...
⁃  bundles  libressl  (hopefully  lesser  security  issues)
n  graceful  restart  and  self  upgrade  via  Server::Starter
11	
  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
Key  features  of  H2O  (cont'd)
n  state-‐‑‒of-‐‑‒art  reverse  proxy
⁃  use  of  PicoHTTPParser  leads  to  performance
⁃  reuses  connections  with  a  server-‐‑‒wide  
connection  pool
⁃  X-‐‑‒Reproxy-‐‑‒URL  support
•  can  do  both:  backend-‐‑‒to-‐‑‒backend  and  backend-‐‑‒to-‐‑‒
local
⁃  DNS  lookup
•  backend  servers  can  be  added  /  removed  by  
updating  DNS  or  /etc/hosts
12	
  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
Improving  User  Experience  with  H2O  &  HTTP/2
13	
  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
Issues  of  HTTP/1  fixed  by  HTTP/2
n  head-‐‑‒of-‐‑‒line  blocking
⁃  using  multiple  TCP  connections  had  performance  
issues  due  to  slow-‐‑‒start  /  too  little  concurrency
n  prioritized  resource  loading
⁃  load  assets  that  block  rendering  (e.g.  CSS,  JS)  
before  images
14	
  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
Prioritization  in  HTTP/2
n  weight-‐‑‒based  and  dependency-‐‑‒based
⁃  weight-‐‑‒based:  75%  of  bandwidth  to  A,  25%  to  B
⁃  dependency-‐‑‒based:  send  HTML  after  JavaScript
n  Firefox  is  known  for  its  state-‐‑‒of-‐‑‒art  protocol  impl.
⁃  send  CSS  and  JavaScript  files  in  <HEAD>  before  
HTML  and/or  image  files
⁃  HTML  is  given  2.5x  bandwidth  above  images
n  Chrome  uses  weight-‐‑‒based  only
⁃  adapted  from  its  SPDY  implementation
15	
  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
The  benchmark
n  test  data:  http2rulez.com
⁃  loads  5  CSS  and  8  JavaScript  files  in  <HEAD>
•  including  minified  jquery.js
⁃  loads  18  non-‐‑‒blocking  asset  files  (e.g.  images),  
both  small  and  large
n  network  is  given  100ms  latency
⁃  uses  a  virtual  network  to  avoid  noise
n  web  browsers:  Chrome  43  /  Firefox  38
n  servers:  H2O  1.3.0-‐‑‒alpha1  /  Nginx  1.9.1
⁃  on  Ubuntu  14.04  (on  VMware  fusion)
16	
  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
Nginx  (HTTP/1.1)  +  Chrome
17	
  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
first-‐‑‒paint  time:  1.83  seconds
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
Nginx  (SPDY/3.1)  +  Chrome
18	
  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
first-‐‑‒paint  time:  1.89  seconds
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
H2O  (HTTP/2)  +  Chrome
19	
  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
first-‐‑‒paint  time:  1.87  seconds
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
Why  not  faster  with  HTTP/2?
n  Because  Chrome  (does  not)  prioritize  CSS  /  script  
files  above  images
n  upcoming  version  of  H2O  provides  a  configuration  
directive  http2-‐‑‒reprioritize-‐‑‒blocking-‐‑‒assets  to  tackle  
the  issue
⁃  when  set  to  ON,  the  server  sends  CSS  /  scripts  
before  anything  else
20	
  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
H2O  (HTTP/2+reprioritize:ON)  +  Chrome
21	
  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
first-‐‑‒paint  time:  1.32  seconds
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
Nginx  (HTTP/1.1)  +  Firefox
22	
  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
first-‐‑‒paint  time:  1.32  seconds
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
Nginx  (SPDY/3.1)  +  Firefox
23	
  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
first-‐‑‒paint  time:  1.87  seconds
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
H2O  (HTTP/2)  +  Firefox
24	
  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
first-‐‑‒paint  time:  1.03  seconds
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
The  benchmark  scores
25	
  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
Analysis
n  H2O  (HTTP/2)  is  50%  faster  in  first-‐‑‒paint  time  
than  Nginx  (HTTP/1.1)  on  both  browsers
⁃  Chrome  needs  the  reprioritize  directive  set  to  ON
n  Nginx  (SPDY/3.1)  is  not  faster  than  HTTP/1.1,  likely  
because  it  does  not  prioritize  the  streams
⁃  on  Firefox,  HTTP/1.1  is  faster  than  SPDY/3.1  
since  the  browser  delays  sending  requests  for  
images  until  receiving  all  the  blocking  assets
26	
  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
Conclusion
n  H2O  (and  HTTP/2)  provides  better  user  experience
⁃  esp.  under  high-‐‑‒latency  network  (e.g.  mobile)
n  prioritization  is  very  important  in  SPDY  &  HTTP/2
⁃  benchmark  your  HTTP/2  server!
⁃  on  the  client-‐‑‒side,  Firefox  is  doing  very  well
•  Chrome  needs  improvement,  H2O  provides  a  fix
27	
  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
What's  coming  to  H2O
n  Version  1.3
⁃  expected  this  week?
⁃  http2-‐‑‒reprioritize-‐‑‒blocking-‐‑‒assets  for  better  user  
experience  on  Chrome
⁃  preliminary  support  for  FastCGI
n  Version  1.4  and  beyond
⁃  ease-‐‑‒of-‐‑‒use  features
28	
  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
Stay  Tuned!
29	
  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
1 of 29

Recommended

Reorganizing Website Architecture for HTTP/2 and Beyond by
Reorganizing Website Architecture for HTTP/2 and BeyondReorganizing Website Architecture for HTTP/2 and Beyond
Reorganizing Website Architecture for HTTP/2 and BeyondKazuho Oku
46.8K views47 slides
Developing the fastest HTTP/2 server by
Developing the fastest HTTP/2 serverDeveloping the fastest HTTP/2 server
Developing the fastest HTTP/2 serverKazuho Oku
52.3K views56 slides
Programming TCP for responsiveness by
Programming TCP for responsivenessProgramming TCP for responsiveness
Programming TCP for responsivenessKazuho Oku
3.5K views17 slides
Promise of Push (HTTP/2 Web Performance) by
Promise of Push (HTTP/2 Web Performance)Promise of Push (HTTP/2 Web Performance)
Promise of Push (HTTP/2 Web Performance)Colin Bendell
1.9K views70 slides
HTTP/2で 速くなるとき ならないとき by
HTTP/2で 速くなるとき ならないときHTTP/2で 速くなるとき ならないとき
HTTP/2で 速くなるとき ならないときKazuho Oku
36K views102 slides
Cache aware-server-push in H2O version 1.5 by
Cache aware-server-push in H2O version 1.5Cache aware-server-push in H2O version 1.5
Cache aware-server-push in H2O version 1.5Kazuho Oku
4.6K views9 slides

More Related Content

What's hot

H2O - the optimized HTTP server by
H2O - the optimized HTTP serverH2O - the optimized HTTP server
H2O - the optimized HTTP serverKazuho Oku
76.5K views74 slides
Programming TCP for responsiveness by
Programming TCP for responsivenessProgramming TCP for responsiveness
Programming TCP for responsivenessKazuho Oku
9.7K views30 slides
HTTP2:新的机遇与挑战 by
HTTP2:新的机遇与挑战HTTP2:新的机遇与挑战
HTTP2:新的机遇与挑战Jerry Qu
18K views98 slides
Make gRPC great again by
Make gRPC great againMake gRPC great again
Make gRPC great againRoberto Veral del Pozo
474 views32 slides
HTTP/2 for Developers by
HTTP/2 for DevelopersHTTP/2 for Developers
HTTP/2 for DevelopersSvetlin Nakov
10.6K views47 slides
HTTP2 and gRPC by
HTTP2 and gRPCHTTP2 and gRPC
HTTP2 and gRPCGuo Jing
14.4K views62 slides

What's hot(20)

H2O - the optimized HTTP server by Kazuho Oku
H2O - the optimized HTTP serverH2O - the optimized HTTP server
H2O - the optimized HTTP server
Kazuho Oku76.5K views
Programming TCP for responsiveness by Kazuho Oku
Programming TCP for responsivenessProgramming TCP for responsiveness
Programming TCP for responsiveness
Kazuho Oku9.7K views
HTTP2:新的机遇与挑战 by Jerry Qu
HTTP2:新的机遇与挑战HTTP2:新的机遇与挑战
HTTP2:新的机遇与挑战
Jerry Qu18K views
HTTP/2 for Developers by Svetlin Nakov
HTTP/2 for DevelopersHTTP/2 for Developers
HTTP/2 for Developers
Svetlin Nakov10.6K views
HTTP2 and gRPC by Guo Jing
HTTP2 and gRPCHTTP2 and gRPC
HTTP2 and gRPC
Guo Jing14.4K views
IETF 100: Surviving IPv6 fragmentation by APNIC
IETF 100: Surviving IPv6 fragmentationIETF 100: Surviving IPv6 fragmentation
IETF 100: Surviving IPv6 fragmentation
APNIC613 views
RIPE 71 and IETF 94 reports webinar by Men and Mice
RIPE 71 and IETF 94 reports webinarRIPE 71 and IETF 94 reports webinar
RIPE 71 and IETF 94 reports webinar
Men and Mice616 views
LF_OVS_17_OvS manipulation with Go at DigitalOcean by LF_OpenvSwitch
LF_OVS_17_OvS manipulation with Go at DigitalOceanLF_OVS_17_OvS manipulation with Go at DigitalOcean
LF_OVS_17_OvS manipulation with Go at DigitalOcean
LF_OpenvSwitch1K views
Enabling Googley microservices with HTTP/2 and gRPC. by Alex Borysov
Enabling Googley microservices with HTTP/2 and gRPC.Enabling Googley microservices with HTTP/2 and gRPC.
Enabling Googley microservices with HTTP/2 and gRPC.
Alex Borysov18.7K views
SPDY & HTTP2.0 & QUIC - #bpstudy 2013-08-28 by Jxck Jxck
SPDY & HTTP2.0 & QUIC - #bpstudy 2013-08-28SPDY & HTTP2.0 & QUIC - #bpstudy 2013-08-28
SPDY & HTTP2.0 & QUIC - #bpstudy 2013-08-28
Jxck Jxck14.9K views
Are we really ready to turn off IPv4? by APNIC
Are we really ready to turn off IPv4?Are we really ready to turn off IPv4?
Are we really ready to turn off IPv4?
APNIC815 views
Microservices summit talk 1/31 by Varun Talwar
Microservices summit talk   1/31Microservices summit talk   1/31
Microservices summit talk 1/31
Varun Talwar760 views
Introduction to QUIC by Shuya Osaki
Introduction to QUICIntroduction to QUIC
Introduction to QUIC
Shuya Osaki2.7K views
HTTP/2 Introduction by Walter Liu
HTTP/2 IntroductionHTTP/2 Introduction
HTTP/2 Introduction
Walter Liu2.2K views
Taking Security Groups to Ludicrous Speed with OVS (OpenStack Summit 2015) by Thomas Graf
Taking Security Groups to Ludicrous Speed with OVS (OpenStack Summit 2015)Taking Security Groups to Ludicrous Speed with OVS (OpenStack Summit 2015)
Taking Security Groups to Ludicrous Speed with OVS (OpenStack Summit 2015)
Thomas Graf4.3K views
Technical Overview of QUIC by shigeki_ohtsu
Technical  Overview of QUICTechnical  Overview of QUIC
Technical Overview of QUIC
shigeki_ohtsu16.4K views

Viewers also liked

HTTP/2の課題と将来 by
HTTP/2の課題と将来HTTP/2の課題と将来
HTTP/2の課題と将来Kazuho Oku
36.4K views50 slides
H2O - making HTTP better by
H2O - making HTTP betterH2O - making HTTP better
H2O - making HTTP betterKazuho Oku
54.5K views20 slides
TLS & LURK @ IETF 95 by
TLS & LURK @ IETF 95TLS & LURK @ IETF 95
TLS & LURK @ IETF 95Kazuho Oku
3K views20 slides
JSON SQL Injection and the Lessons Learned by
JSON SQL Injection and the Lessons LearnedJSON SQL Injection and the Lessons Learned
JSON SQL Injection and the Lessons LearnedKazuho Oku
37.8K views35 slides
TLS 1.3 と 0-RTT のこわ〜い話 by
TLS 1.3 と 0-RTT のこわ〜い話TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話Kazuho Oku
15K views28 slides
HTTPとサーバ技術の最新動向 by
HTTPとサーバ技術の最新動向HTTPとサーバ技術の最新動向
HTTPとサーバ技術の最新動向Kazuho Oku
44.3K views91 slides

Viewers also liked(20)

HTTP/2の課題と将来 by Kazuho Oku
HTTP/2の課題と将来HTTP/2の課題と将来
HTTP/2の課題と将来
Kazuho Oku36.4K views
H2O - making HTTP better by Kazuho Oku
H2O - making HTTP betterH2O - making HTTP better
H2O - making HTTP better
Kazuho Oku54.5K views
TLS & LURK @ IETF 95 by Kazuho Oku
TLS & LURK @ IETF 95TLS & LURK @ IETF 95
TLS & LURK @ IETF 95
Kazuho Oku3K views
JSON SQL Injection and the Lessons Learned by Kazuho Oku
JSON SQL Injection and the Lessons LearnedJSON SQL Injection and the Lessons Learned
JSON SQL Injection and the Lessons Learned
Kazuho Oku37.8K views
TLS 1.3 と 0-RTT のこわ〜い話 by Kazuho Oku
TLS 1.3 と 0-RTT のこわ〜い話TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話
Kazuho Oku15K views
HTTPとサーバ技術の最新動向 by Kazuho Oku
HTTPとサーバ技術の最新動向HTTPとサーバ技術の最新動向
HTTPとサーバ技術の最新動向
Kazuho Oku44.3K views
Attacking http2 implementations (1) by John Villamil
Attacking http2 implementations (1)Attacking http2 implementations (1)
Attacking http2 implementations (1)
John Villamil4.4K views
Apache Traffic Server by supertom
Apache Traffic ServerApache Traffic Server
Apache Traffic Server
supertom20.8K views
Web Clients for Ruby and What they should be in the future by Toru Kawamura
Web Clients for Ruby and What they should be in the futureWeb Clients for Ruby and What they should be in the future
Web Clients for Ruby and What they should be in the future
Toru Kawamura11K views
HTTP/2の現状とこれから by shigeki_ohtsu
HTTP/2の現状とこれからHTTP/2の現状とこれから
HTTP/2の現状とこれから
shigeki_ohtsu113.6K views
Securty Testing For RESTful Applications by Source Conference
Securty Testing For RESTful ApplicationsSecurty Testing For RESTful Applications
Securty Testing For RESTful Applications
Source Conference15.2K views
Webディレクターの実績を可視化する方法 by Yasuji Takase
Webディレクターの実績を可視化する方法Webディレクターの実績を可視化する方法
Webディレクターの実績を可視化する方法
Yasuji Takase21.7K views
Unit 1.1 Introduction to Programming by Intan Jameel
Unit 1.1 Introduction to Programming Unit 1.1 Introduction to Programming
Unit 1.1 Introduction to Programming
Intan Jameel291 views
A Long Walk to Water - Lssn 11 by Terri Weiss
A Long Walk to Water - Lssn 11A Long Walk to Water - Lssn 11
A Long Walk to Water - Lssn 11
Terri Weiss4.1K views

Similar to H2O - making the Web faster

Meetup Tech Talk on Web Performance by
Meetup Tech Talk on Web PerformanceMeetup Tech Talk on Web Performance
Meetup Tech Talk on Web PerformanceJean Tunis
132 views56 slides
Http 2: Should I care? by
Http 2: Should I care?Http 2: Should I care?
Http 2: Should I care?LivePerson
855 views16 slides
HTTP/2 Comes to Java by
HTTP/2 Comes to JavaHTTP/2 Comes to Java
HTTP/2 Comes to JavaDavid Delabassee
10.8K views52 slides
Next generation web protocols by
Next generation web protocolsNext generation web protocols
Next generation web protocolsDaniel Austin
1.4K views36 slides
HTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 era by
HTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 eraHTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 era
HTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 erapeychevi
4.4K views73 slides
Servlet 4.0 at GeekOut 2015 by
Servlet 4.0 at GeekOut 2015Servlet 4.0 at GeekOut 2015
Servlet 4.0 at GeekOut 2015Edward Burns
19.3K views87 slides

Similar to H2O - making the Web faster(20)

Meetup Tech Talk on Web Performance by Jean Tunis
Meetup Tech Talk on Web PerformanceMeetup Tech Talk on Web Performance
Meetup Tech Talk on Web Performance
Jean Tunis132 views
Http 2: Should I care? by LivePerson
Http 2: Should I care?Http 2: Should I care?
Http 2: Should I care?
LivePerson855 views
Next generation web protocols by Daniel Austin
Next generation web protocolsNext generation web protocols
Next generation web protocols
Daniel Austin1.4K views
HTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 era by peychevi
HTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 eraHTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 era
HTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 era
peychevi4.4K views
Servlet 4.0 at GeekOut 2015 by Edward Burns
Servlet 4.0 at GeekOut 2015Servlet 4.0 at GeekOut 2015
Servlet 4.0 at GeekOut 2015
Edward Burns19.3K views
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015 by Edward Burns
HTTP/2 comes to Java.  What Servlet 4.0 means to you. DevNexus 2015HTTP/2 comes to Java.  What Servlet 4.0 means to you. DevNexus 2015
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015
Edward Burns19.2K views
HTML5, HTTP2, and You 1.1 by Daniel Austin
HTML5, HTTP2, and You 1.1HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1
Daniel Austin3.7K views
How to enable file transfer acceleration in FileCatalyst Workflow by FileCatalyst
How to enable file transfer acceleration in FileCatalyst WorkflowHow to enable file transfer acceleration in FileCatalyst Workflow
How to enable file transfer acceleration in FileCatalyst Workflow
FileCatalyst759 views
HTTP/2 and a Faster Web by C4Media
HTTP/2 and a Faster WebHTTP/2 and a Faster Web
HTTP/2 and a Faster Web
C4Media829 views
A new Internet? Intro to HTTP/2, QUIC, DoH and DNS over QUIC by APNIC
A new Internet? Intro to HTTP/2, QUIC, DoH and DNS over QUICA new Internet? Intro to HTTP/2, QUIC, DoH and DNS over QUIC
A new Internet? Intro to HTTP/2, QUIC, DoH and DNS over QUIC
APNIC4.2K views
HTTP2 is Here! by Andy Davies
HTTP2 is Here!HTTP2 is Here!
HTTP2 is Here!
Andy Davies5.1K views
FIWARE Global Summit - Real-time Media Stream Processing Using Kurento by FIWARE
FIWARE Global Summit - Real-time Media Stream Processing Using KurentoFIWARE Global Summit - Real-time Media Stream Processing Using Kurento
FIWARE Global Summit - Real-time Media Stream Processing Using Kurento
FIWARE343 views
HTTP colon slash slash: end of the road? @ CakeFest 2013 in San Francisco by Alessandro Nadalin
HTTP colon slash slash: end of the road? @ CakeFest 2013 in San FranciscoHTTP colon slash slash: end of the road? @ CakeFest 2013 in San Francisco
HTTP colon slash slash: end of the road? @ CakeFest 2013 in San Francisco
Alessandro Nadalin3.8K views
CON5898 What Servlet 4.0 Means To You by Edward Burns
CON5898 What Servlet 4.0 Means To YouCON5898 What Servlet 4.0 Means To You
CON5898 What Servlet 4.0 Means To You
Edward Burns31.5K views
From Fast To SPDY by Mike Belshe
From Fast To SPDYFrom Fast To SPDY
From Fast To SPDY
Mike Belshe2.2K views
Improving performance by changing the rules from fast to SPDY by Cotendo
Improving performance by changing the rules   from fast to SPDYImproving performance by changing the rules   from fast to SPDY
Improving performance by changing the rules from fast to SPDY
Cotendo399 views
A New Internet? Introduction to HTTP/2, QUIC and DOH by APNIC
A New Internet? Introduction to HTTP/2, QUIC and DOHA New Internet? Introduction to HTTP/2, QUIC and DOH
A New Internet? Introduction to HTTP/2, QUIC and DOH
APNIC2.7K views

More from Kazuho Oku

QUIC標準化動向 〜2017/7 by
QUIC標準化動向 〜2017/7QUIC標準化動向 〜2017/7
QUIC標準化動向 〜2017/7Kazuho Oku
9.8K views37 slides
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先 by
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先Kazuho Oku
44.9K views85 slides
HTTP/2時代のウェブサイト設計 by
HTTP/2時代のウェブサイト設計HTTP/2時代のウェブサイト設計
HTTP/2時代のウェブサイト設計Kazuho Oku
52.2K views79 slides
JSX 速さの秘密 - 高速なJavaScriptを書く方法 by
JSX 速さの秘密 - 高速なJavaScriptを書く方法JSX 速さの秘密 - 高速なJavaScriptを書く方法
JSX 速さの秘密 - 高速なJavaScriptを書く方法Kazuho Oku
29.1K views34 slides
JSX の現在と未来 - Oct 26 2013 by
JSX の現在と未来 - Oct 26 2013JSX の現在と未来 - Oct 26 2013
JSX の現在と未来 - Oct 26 2013Kazuho Oku
8.2K views28 slides
Using the Power to Prove by
Using the Power to ProveUsing the Power to Prove
Using the Power to ProveKazuho Oku
2.8K views19 slides

More from Kazuho Oku(16)

QUIC標準化動向 〜2017/7 by Kazuho Oku
QUIC標準化動向 〜2017/7QUIC標準化動向 〜2017/7
QUIC標準化動向 〜2017/7
Kazuho Oku9.8K views
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先 by Kazuho Oku
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
Kazuho Oku44.9K views
HTTP/2時代のウェブサイト設計 by Kazuho Oku
HTTP/2時代のウェブサイト設計HTTP/2時代のウェブサイト設計
HTTP/2時代のウェブサイト設計
Kazuho Oku52.2K views
JSX 速さの秘密 - 高速なJavaScriptを書く方法 by Kazuho Oku
JSX 速さの秘密 - 高速なJavaScriptを書く方法JSX 速さの秘密 - 高速なJavaScriptを書く方法
JSX 速さの秘密 - 高速なJavaScriptを書く方法
Kazuho Oku29.1K views
JSX の現在と未来 - Oct 26 2013 by Kazuho Oku
JSX の現在と未来 - Oct 26 2013JSX の現在と未来 - Oct 26 2013
JSX の現在と未来 - Oct 26 2013
Kazuho Oku8.2K views
Using the Power to Prove by Kazuho Oku
Using the Power to ProveUsing the Power to Prove
Using the Power to Prove
Kazuho Oku2.8K views
JSX - 公開から1年を迎えて by Kazuho Oku
JSX - 公開から1年を迎えてJSX - 公開から1年を迎えて
JSX - 公開から1年を迎えて
Kazuho Oku8.3K views
JSX - developing a statically-typed programming language for the Web by Kazuho Oku
JSX - developing a statically-typed programming language for the WebJSX - developing a statically-typed programming language for the Web
JSX - developing a statically-typed programming language for the Web
Kazuho Oku18.5K views
ウェブブラウザの時代は終わるのか 〜スマホアプリとHTML5の未来〜 by Kazuho Oku
ウェブブラウザの時代は終わるのか 〜スマホアプリとHTML5の未来〜ウェブブラウザの時代は終わるのか 〜スマホアプリとHTML5の未来〜
ウェブブラウザの時代は終わるのか 〜スマホアプリとHTML5の未来〜
Kazuho Oku17K views
JSX Optimizer by Kazuho Oku
JSX OptimizerJSX Optimizer
JSX Optimizer
Kazuho Oku6.7K views
JSX Design Overview (日本語) by Kazuho Oku
JSX Design Overview (日本語)JSX Design Overview (日本語)
JSX Design Overview (日本語)
Kazuho Oku4.4K views
Unix Programming with Perl 2 by Kazuho Oku
Unix Programming with Perl 2Unix Programming with Perl 2
Unix Programming with Perl 2
Kazuho Oku5.6K views
例えば牛丼を避ける by Kazuho Oku
例えば牛丼を避ける例えば牛丼を避ける
例えば牛丼を避ける
Kazuho Oku3.6K views
オープンソース開発者がDeNAを選ぶ理由 by Kazuho Oku
オープンソース開発者がDeNAを選ぶ理由オープンソース開発者がDeNAを選ぶ理由
オープンソース開発者がDeNAを選ぶ理由
Kazuho Oku6.6K views

Recently uploaded

How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ... by
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...ShapeBlue
123 views28 slides
State of the Union - Rohit Yadav - Apache CloudStack by
State of the Union - Rohit Yadav - Apache CloudStackState of the Union - Rohit Yadav - Apache CloudStack
State of the Union - Rohit Yadav - Apache CloudStackShapeBlue
253 views53 slides
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ... by
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...ShapeBlue
79 views17 slides
Keynote Talk: Open Source is Not Dead - Charles Schulz - Vates by
Keynote Talk: Open Source is Not Dead - Charles Schulz - VatesKeynote Talk: Open Source is Not Dead - Charles Schulz - Vates
Keynote Talk: Open Source is Not Dead - Charles Schulz - VatesShapeBlue
210 views15 slides
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue by
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlueCloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlueShapeBlue
94 views13 slides
Ransomware is Knocking your Door_Final.pdf by
Ransomware is Knocking your Door_Final.pdfRansomware is Knocking your Door_Final.pdf
Ransomware is Knocking your Door_Final.pdfSecurity Bootcamp
90 views46 slides

Recently uploaded(20)

How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ... by ShapeBlue
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
ShapeBlue123 views
State of the Union - Rohit Yadav - Apache CloudStack by ShapeBlue
State of the Union - Rohit Yadav - Apache CloudStackState of the Union - Rohit Yadav - Apache CloudStack
State of the Union - Rohit Yadav - Apache CloudStack
ShapeBlue253 views
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ... by ShapeBlue
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...
ShapeBlue79 views
Keynote Talk: Open Source is Not Dead - Charles Schulz - Vates by ShapeBlue
Keynote Talk: Open Source is Not Dead - Charles Schulz - VatesKeynote Talk: Open Source is Not Dead - Charles Schulz - Vates
Keynote Talk: Open Source is Not Dead - Charles Schulz - Vates
ShapeBlue210 views
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue by ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlueCloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
ShapeBlue94 views
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti... by ShapeBlue
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...
ShapeBlue98 views
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or... by ShapeBlue
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
ShapeBlue158 views
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ... by ShapeBlue
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...
ShapeBlue85 views
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue by ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlueElevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
ShapeBlue179 views
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue by ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlueVNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
ShapeBlue163 views
Extending KVM Host HA for Non-NFS Storage - Alex Ivanov - StorPool by ShapeBlue
Extending KVM Host HA for Non-NFS Storage -  Alex Ivanov - StorPoolExtending KVM Host HA for Non-NFS Storage -  Alex Ivanov - StorPool
Extending KVM Host HA for Non-NFS Storage - Alex Ivanov - StorPool
ShapeBlue84 views
Why and How CloudStack at weSystems - Stephan Bienek - weSystems by ShapeBlue
Why and How CloudStack at weSystems - Stephan Bienek - weSystemsWhy and How CloudStack at weSystems - Stephan Bienek - weSystems
Why and How CloudStack at weSystems - Stephan Bienek - weSystems
ShapeBlue197 views
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f... by TrustArc
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc160 views
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda... by ShapeBlue
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...
ShapeBlue120 views
DRBD Deep Dive - Philipp Reisner - LINBIT by ShapeBlue
DRBD Deep Dive - Philipp Reisner - LINBITDRBD Deep Dive - Philipp Reisner - LINBIT
DRBD Deep Dive - Philipp Reisner - LINBIT
ShapeBlue140 views
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT by ShapeBlue
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBITUpdates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
ShapeBlue166 views
Business Analyst Series 2023 - Week 4 Session 7 by DianaGray10
Business Analyst Series 2023 -  Week 4 Session 7Business Analyst Series 2023 -  Week 4 Session 7
Business Analyst Series 2023 - Week 4 Session 7
DianaGray10126 views

H2O - making the Web faster

  • 1. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   H2O making  the  Web  faster DeNA  Co.,  Ltd. Kazuho  Oku 1  
  • 2. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   Agenda n  How  H2O  started n  The  Goal  and  Key  Features n  Improving  User  Experience  with  HTTP/2 2  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
  • 3. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   How  H2O  Started 3  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
  • 4. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   About  H2O n  H2O  is  a  HTTP  server ⁃  debut  in  late  2014 ⁃  supports  HTTP/1  and  HTTP/2 ⁃  known  for  its  performance ⁃  developed  by  DeNA  Co.,  Ltd.  and  contributors "H2O  is  a  new  blazingly  fast  HTTP  server  with  http2   support  that  shows  potential" –  http2  explained  by  Daniel  Stenberg 4  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
  • 5. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   Benchmark 5  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
  • 6. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   PicoHTTPParser n  originally  written  for  HTTP::Parser::XS ⁃  the  de-‐‑‒facto  HTTP  parser  of  Plack  servers n  the  core  of  H2O 6  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
  • 7. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   Design  philosophy  of  H2O n  Do  it  right,  from  the  ground  up n  design  wins  lead  to  higher  performance  with  less   code 7  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015) $ wc picohttpparser.[hc] 596 2077 22192 picohttpparser.c 86 495 3363 picohttpparser.h 682 2572 25555 total $ wc http_parser.[hc] 2434 7281 70424 http_parser.c 342 1567 12991 http_parser.h 2776 8848 83415 total
  • 8. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   High-‐‑‒level  architecture  of  H2O n  event-‐‑‒driven ⁃  can  handle  many  connections  concurrently n  multi-‐‑‒thread ⁃  states  and  upstream  (reverse-‐‑‒proxy)  connections   are  reused •  impossible  under  a  multi-‐‑‒process  design n  multi-‐‑‒protocol ⁃  designed  for  HTTP/2  and  TLS 8  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
  • 9. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   The  Goal  and  Key  Features 9  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
  • 10. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   The  goal  of  H2O  is  to  provide... n  better  performance ⁃  demand  for  handling  more  requests:   •  IoT,  micro-‐‑‒services,  etc. n  better  user  experience ⁃  faster  content  delivery  using  HTTP/2 n  ease  to  use  and  configure ⁃  TLS  (OCSP  stapling,  record  size  tuning,   chacha20/poly1305,  ...) ⁃  dynamic  reconfiguration 10  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
  • 11. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   Key  features  of  H2O n  excellent  protocol  implementation ⁃  very  fast  HTTP/1 ⁃  one  of  the  leading  implementations  of  HTTP/2 n  optimally  configured  for  HTTPS ⁃  enabled  by  default:  OCSP  stapling,  record  size   tuning,  chacha20/poly1305,  ... ⁃  bundles  libressl  (hopefully  lesser  security  issues) n  graceful  restart  and  self  upgrade  via  Server::Starter 11  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
  • 12. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   Key  features  of  H2O  (cont'd) n  state-‐‑‒of-‐‑‒art  reverse  proxy ⁃  use  of  PicoHTTPParser  leads  to  performance ⁃  reuses  connections  with  a  server-‐‑‒wide   connection  pool ⁃  X-‐‑‒Reproxy-‐‑‒URL  support •  can  do  both:  backend-‐‑‒to-‐‑‒backend  and  backend-‐‑‒to-‐‑‒ local ⁃  DNS  lookup •  backend  servers  can  be  added  /  removed  by   updating  DNS  or  /etc/hosts 12  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
  • 13. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   Improving  User  Experience  with  H2O  &  HTTP/2 13  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
  • 14. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   Issues  of  HTTP/1  fixed  by  HTTP/2 n  head-‐‑‒of-‐‑‒line  blocking ⁃  using  multiple  TCP  connections  had  performance   issues  due  to  slow-‐‑‒start  /  too  little  concurrency n  prioritized  resource  loading ⁃  load  assets  that  block  rendering  (e.g.  CSS,  JS)   before  images 14  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
  • 15. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   Prioritization  in  HTTP/2 n  weight-‐‑‒based  and  dependency-‐‑‒based ⁃  weight-‐‑‒based:  75%  of  bandwidth  to  A,  25%  to  B ⁃  dependency-‐‑‒based:  send  HTML  after  JavaScript n  Firefox  is  known  for  its  state-‐‑‒of-‐‑‒art  protocol  impl. ⁃  send  CSS  and  JavaScript  files  in  <HEAD>  before   HTML  and/or  image  files ⁃  HTML  is  given  2.5x  bandwidth  above  images n  Chrome  uses  weight-‐‑‒based  only ⁃  adapted  from  its  SPDY  implementation 15  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
  • 16. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   The  benchmark n  test  data:  http2rulez.com ⁃  loads  5  CSS  and  8  JavaScript  files  in  <HEAD> •  including  minified  jquery.js ⁃  loads  18  non-‐‑‒blocking  asset  files  (e.g.  images),   both  small  and  large n  network  is  given  100ms  latency ⁃  uses  a  virtual  network  to  avoid  noise n  web  browsers:  Chrome  43  /  Firefox  38 n  servers:  H2O  1.3.0-‐‑‒alpha1  /  Nginx  1.9.1 ⁃  on  Ubuntu  14.04  (on  VMware  fusion) 16  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
  • 17. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   Nginx  (HTTP/1.1)  +  Chrome 17  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015) first-‐‑‒paint  time:  1.83  seconds
  • 18. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   Nginx  (SPDY/3.1)  +  Chrome 18  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015) first-‐‑‒paint  time:  1.89  seconds
  • 19. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   H2O  (HTTP/2)  +  Chrome 19  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015) first-‐‑‒paint  time:  1.87  seconds
  • 20. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   Why  not  faster  with  HTTP/2? n  Because  Chrome  (does  not)  prioritize  CSS  /  script   files  above  images n  upcoming  version  of  H2O  provides  a  configuration   directive  http2-‐‑‒reprioritize-‐‑‒blocking-‐‑‒assets  to  tackle   the  issue ⁃  when  set  to  ON,  the  server  sends  CSS  /  scripts   before  anything  else 20  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
  • 21. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   H2O  (HTTP/2+reprioritize:ON)  +  Chrome 21  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015) first-‐‑‒paint  time:  1.32  seconds
  • 22. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   Nginx  (HTTP/1.1)  +  Firefox 22  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015) first-‐‑‒paint  time:  1.32  seconds
  • 23. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   Nginx  (SPDY/3.1)  +  Firefox 23  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015) first-‐‑‒paint  time:  1.87  seconds
  • 24. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   H2O  (HTTP/2)  +  Firefox 24  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015) first-‐‑‒paint  time:  1.03  seconds
  • 25. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   The  benchmark  scores 25  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
  • 26. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   Analysis n  H2O  (HTTP/2)  is  50%  faster  in  first-‐‑‒paint  time   than  Nginx  (HTTP/1.1)  on  both  browsers ⁃  Chrome  needs  the  reprioritize  directive  set  to  ON n  Nginx  (SPDY/3.1)  is  not  faster  than  HTTP/1.1,  likely   because  it  does  not  prioritize  the  streams ⁃  on  Firefox,  HTTP/1.1  is  faster  than  SPDY/3.1   since  the  browser  delays  sending  requests  for   images  until  receiving  all  the  blocking  assets 26  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
  • 27. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   Conclusion n  H2O  (and  HTTP/2)  provides  better  user  experience ⁃  esp.  under  high-‐‑‒latency  network  (e.g.  mobile) n  prioritization  is  very  important  in  SPDY  &  HTTP/2 ⁃  benchmark  your  HTTP/2  server! ⁃  on  the  client-‐‑‒side,  Firefox  is  doing  very  well •  Chrome  needs  improvement,  H2O  provides  a  fix 27  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
  • 28. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   What's  coming  to  H2O n  Version  1.3 ⁃  expected  this  week? ⁃  http2-‐‑‒reprioritize-‐‑‒blocking-‐‑‒assets  for  better  user   experience  on  Chrome ⁃  preliminary  support  for  FastCGI n  Version  1.4  and  beyond ⁃  ease-‐‑‒of-‐‑‒use  features 28  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)
  • 29. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   Stay  Tuned! 29  H2O  -‐‑‒  making  the  Web  faster  (Jun  2  2015)