Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

HTTP/2.0と標準化

3,028 views

Published on

Published in: Technology
  • Be the first to comment

HTTP/2.0と標準化

  1. 1. HTTP/2.0と標準化 2013/10/28(Mon) パワーランチ@NEXTSCAPE Taketo Takashima
  2. 2. agenda • はじめに - HTTPとHTML - 標準化(IETF) • Webの変化 • HTTP/2.0 • SPDY • まとめ
  3. 3. HTTPとHTML
  4. 4. HTTP HTML
  5. 5. HTTPとは? • Hyper Text Transfer Protocol • サーバとブラウザ間でHTMLをやり取 りするルール • ユーザトラフィックの約80%がHTTP
  6. 6. HTTPの歴史 1991 WWW公開 1996/5 HTTP/1.0 (RFC1945) 1997/7 HTTP/1.1 (RFC2068) ... 2009/11 SPDY/1 (Google) 2012/8 HTTP/2.0 (IETF 84) 2012/11 HTTP/2.0 (draft-00) 2013/10 HTTP/2.0 (draft-07)
  7. 7. HTTPのリクエスト http://t32k.me/mol/log/reduce-http-requests-overview/
  8. 8. 標準化(IETF)
  9. 9. 標準? • 相互運用のための規格のこと - 単位(メートル)、ネジ、電話、WiFi、 - メール、HTTP、HTML、etc... • 国際標準: 世界共通の規格
  10. 10. 標準化団体 • IETF: インターネット技術 • W3C: Web/HTML • ITU: 電気通信/無線通信 • ISO: 工業(電気分野以外)
  11. 11. IETFとは? • インターネット技術の標準化団体 - MLやMeeting(年3回)で議論 - だれでも参加可能 • RFCを発行 - IPv4/v6やTCP, HTTP, FTP, メールなどの仕様 • Working Group - hybi、json、dnsop、ospf、oauth など
  12. 12. 標準化の流れ(IETF) • Internet-Draft として十分議論される とRFC化に進む https://www.nic.ad.jp/ja/newsletter/No24/090.html
  13. 13. Webの変化
  14. 14. HTTPの歴史 1991 WWW公開 1996/5 HTTP/1.0 (RFC1945) 1997/7 HTTP/1.1 (RFC2068) ... 2009/11 SPDY/1 2012/8 HTTP/2.0 (IETF 84) 2012/11 HTTP/2.0 (draft-00) 2013/10 HTTP/2.0 (draft-07)
  15. 15. 1997 2013
  16. 16. ページサイズとリクエスト数の推移 http://httparchive.org/trends.php#bytesTotal&reqTotal
  17. 17. HTTP/1.1の問題点 • ネットワークの効率が悪い - パイプライン/keep-alive • 認証(Basic, Digest) • セキュリティ • etc...
  18. 18. HTTP/2.0
  19. 19. HTTP/2.0の目的 • 環境を限定しないパフォーマンス改善 • ネットワーク資源の効率的な使用 • 現代的なセキュリティ要件および慣習 の反映
  20. 20. 仕様策定状況 • IETF httpbis WG で仕様策定中 • 2014年11月標準化(RFC)を目標 • 現在の状況: Internet-Draft draft-ietf-httpbis-http2-07
  21. 21. HTTPの歴史 1991 WWW公開 1996/5 HTTP/1.0 (RFC1945) 1997/7 HTTP/1.1 (RFC2068) ... 2009/11 SPDY/1(Google) 2012/8 HTTP/2.0 (IETF 84) 2012/11 HTTP/2.0 (draft-00) 2013/10 HTTP/2.0 (draft-07)
  22. 22. SPDY/3をベースに仕様策定中 http://tools.ietf.org/html/draft-ietf-httpbis-http2-00
  23. 23. HTTP/2.0の機能
  24. 24. HTTP/2.0で変わらないこと • • メソッド(GET/POST)、ステータスコード(404) URIのスキーム(http://) - http2://、web:// • TCPの利用 - UDP、TFO(TCP Fast Open)なども検討された • 認証はスコープから除外 - IETF httpauth WG で議論中
  25. 25. HTTP/2.0で追加される機能 • バイナリ形式 • 多重化/フロー制御 • ヘッダ圧縮(HPAC) • サーバプッシュ • アップグレード(ALPN)
  26. 26. バイナリ形式 • バイナリ形式の「フレーム」単位 http://chimera.labs.oreilly.com/books/1230000000545/ch12.html#_design_and_technical_goals
  27. 27. フレームの種類 • DATA • HEADERS • PRIORITY • RST_STREAM • SETTINGS • PUSH_PROMISE • PING • GOAWAY • WINDOW_UPDATE • CONTINUATION
  28. 28. 多重化/フロー制御 • HTTP/1.1 - 1コネクション(TCP)で1リクエ スト(HTTP) • HTTP/2.0 - TCPコネクション内に複数チャ ネル作成 • レスポンスはリクエストの順序に依存しない http://chimera.labs.oreilly.com/books/1230000000545/ch12.html#_design_and_technical_goals
  29. 29. https://jxck.io/labs/http2cat/#https://www.facebook.com/
  30. 30. ヘッダ圧縮(HPAC) • ヘッダの差分のみ送信 http://chimera.labs.oreilly.com/books/1230000000545/ch12.html#_design_and_technical_goals
  31. 31. サーバプッシュ • 関連するリソースをクライアントからリクエ ストがある前にサーバから送信する http://chimera.labs.oreilly.com/books/1230000000545/ch12.html#_design_and_technical_goals
  32. 32. アップグレード(ALPN) • HTTP/1.1とHTTP/2.0の相互接続 • TLS必須ではない
  33. 33. で、何が変わるの? • Webの高速化手法 - CSSスプライト不要? - Domain Sharding で遅くなる? • ネットワークデザイン - ロードバランサーの外側はHTTP/2.0 - ロードバランサーの内側はHTTP/1.1
  34. 34. HTTP/2.0 Gateway? http://www.f5networks.co.jp/shared/pdf/BIG-IP_SPDY_Gateway.pdf
  35. 35. いつ使えるようになる?
  36. 36. HTTP/2.0の実装(2013/10) • • • • • • • • • • • • nghttp2; C; client + server + intermediary; NPN + Upgrade + direct; draft-06 http2-katana; C#; server + test client; ALPN + Upgrade; draft-06 node-http2; JavaScript (NodeJS); server + client; NPN + direct; draft-06 Mozilla; C++; client; ALPN + NPN; draft-06 http2-perl; Perl; client + server; NPN; draft-04 iij-http2; NodeJS; client + server; ALPN + NPN + Upgrade + direct; draft-06 Akamai Ghost; C++; intermediary; NPN; draft-06 Chromium; C++; client; ALPN + NPN; draft-06 Hasan's GFE; C++; intermediary; ALPN + NPN; draft-04 Twitter; Java; server + client; NPN; draft-06 Wireshark; C; other; NPN + ALPN; draft-06 Ericsson MSP; proxy; NPN + Upgrade + direct; draft-06 https://github.com/http2/http2-spec/wiki/Implementations
  37. 37. まだ使えません! • サーバのプロトタイプ実装/相互接続試 験が始まったばかり • 早く試してみたい人は SPDY を使いま しょう!
  38. 38. SPDY
  39. 39. SPDYとは? • Googleが策定した Web の表示を高速 化するためのプロトコル • 多重化/ヘッダ圧縮/サーバプッシュ/ etc http://www.chromium.org/spdy/spdy-whitepaper
  40. 40. SPDY バージョン http://www.chromium.org/spdy/spdy-protocol
  41. 41. SPDY 対応状況 ブラウザ サーバ • Chrome 10+ • Firefox 13+ • IE 11 • Opera 12+ • Android 3.0+ • Apache(mod_spdy) • Nginx • Jetty • Python • Ruby • node.js • F5 BIG-IP
  42. 42. SPDYを利用しているサービス • Google • Akamai • facebook • twitter • Line • wordpress.com
  43. 43. ヘッダ圧縮+TLSの脆弱性 • CRIME攻撃 - 重複したデータが圧縮されるので、文字列を 埋め込んで送信データが小さくなれば文字列 を推測できる • 対策 - SPDY/3までの実装ではヘッダ圧縮OFFにす る
  44. 44. まとめ
  45. 45. まとめ • HTTP/2.0はパフォーマンスの改善 • Web高速化の手法が変わる • 今すぐ試すなら SPDY を利用する • 標準化の仕様を知ると、今後の技術動 向の未来が少しわかる(...かも)
  46. 46. 参考情報
  47. 47. HTTP/2.0関連(仕様) • draft http://tools.ietf.org/html/draft-ietf-httpbis-http2 • github https://github.com/http2/http2-spec • httpbis http://trac.tools.ietf.org/wg/httpbis/trac/wiki • SPDY http://www.chromium.org/spdy/
  48. 48. HTTP/2.0紹介記事 • HTTP 2.0の最新動向 ¦ Internet Watch http://internet.watch.impress.co.jp/docs/ column/http20/latest.html • Web表示の高速化を実現するSPDYとHTTP/2.0の 標準化 http://www.iij.ad.jp/company/development/ tech/activities/spdy/ • 変わるWebプロトコルの常識(SPDY, HTTP2.0 編) ¦ html5experts.jp http://html5experts.jp/komasshu/404/
  49. 49. IETF関連 • IETF http://www.ietf.org/ • The Tao of IETF http://www.ietf.org/tao-translated-ja.html • IETFとRFC - JPNIC https://www.nic.ad.jp/ja/tech/rfc-jp.html • インターネット10分講座:RFC - JPNIC https://www.nic.ad.jp/ja/newsletter/ No24/090.html

×