HTTP/2.0

+ node.js

Molnár Gábor / @molnar_g

HTTP/1, SPDY, HTTP/2

Google Summer of Code 2013  →  Mozilla  →  node-http2

HTTP/1 problémák - sebesség!

Probléma Workaround Workaround hátránya
1 kérés/TCP
2 TCP/domain
6 TCP/domain
domain sharding
sprite-ok
karbantarthatóság
bufferbloat
TCP priorizálás ∅ sorrendezés párhuzamosság korlátozása
kérés/válasz inlining gyorsítótárazhatóság

SPDY/HTTP2 - megoldások

A HTTP szemantika változatlan!

∞ kérés/TCP

priorizálás

server push

fejléc tömörítés

HTTP2 kapcsolat
felépítése, titkosítás

  • SPDY
    • TLS Next Protocol Negotiation
  • HTTP/2 draft09
    • TLS Application Layer Protocol Negotiation
    • HTTP Upgrade
    • Közvetlen kapcsolat
  • HTTP/2 végleges
    • ?
    • Google, Mozilla: csak TLS ALPN

Implementációk

Név Nyelv SzerepekNegotiationDraft
node-http2 node.jsC,S A,N,D draft-09
nghttp2 C C,S,P A,N,D,U draft-09
Firefox C++ C,S A,N,D draft-09
Wireshark C egyéb A,N,D,U draft-09
http2-katanaC# C,S A,U draft-06
iij-http2 node.jsC,S A,N,D,U draft-06
Akamai GhostC++ P N draft-06
Chromium C++ C A,N draft-06
Twitter Java C,S A,N draft-06
Ericsson MSP P N,D,U draft-06
http2-go Go C,S U draft-06
OkHttp Java C,S N draft-06
http2-perl Perl C,S N draft-04
Hasan's GFE C++ P A,N draft-04

Szerepek: Client, Server, Proxy     Negotiation: ALPN, NPN, Direct, Upgrade     Forrás

Köszönöm a figyelmet!

Kérdések?