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入門

6,570 views

Published on

JAWS-UG沖縄2016年1月勉強会発表資料

Published in: Technology
  • Be the first to comment

HTTP/2入門

  1. 1. HTTP/2入門 JAWS-UG沖縄 2016年1月16日
  2. 2. 自己紹介 • Twitter: @asumaslv • SYON Communications • 自称エンジニア • 熱しやすく冷めやすい飽きっぽい性格 • 好きなAWSサービス CloudFront • JAWS-UG沖縄 代表らしい • ソフトウェアエンジニアではない • 写真撮ってTwitter、Facebookに上げてください 2016/1/17 2
  3. 3. SYON Communications エンジニアを募集しています。 2016/1/17 3 で検索
  4. 4. 暗号化の話 2016/1/17 4
  5. 5. SSLの歴史 • SSL 1.0 • 作成段階で致命的な脆弱性が発見され実装されず • SSL 2.0 • 攻撃を回避不能な脆弱性が発見され廃止 • SSL 3.0 • 1995年策定 • IE 6はSSL 3.0までしか対応していない 2016/1/17 5
  6. 6. SSLの歴史 • TLS 1.0 • SSL 3.0とほぼ一緒 • Android 4.3系はここまで対応 • TLS 1.1 • 2006年策定 • TLS 1.2 • 2008年策定で現在の最新版 2016/1/17 6
  7. 7. SSL was dead. • CVE-2014-3566(2014年10月) • SSL 3.0を無効化するように勧告 • IE 6はSSL 3.0までしか対応していなかった • POODLEがSSLを殺した 2016/1/17 7
  8. 8. 常時TLSが必要な理由 2016/1/17 8
  9. 9. 暗号化は必須の流れ • ATS(App Transport Security) • iOS9とEl Capitanから導入されたセキュリティ対策 • 通信事業者による「通信の最適化」 • GoogleはSSL化を推奨していたが「優先的にイン デックスされる」と宣言(2015/12/18) 2016/1/17 9
  10. 10. HTTPS Everywhere 2016/1/17 10
  11. 11. いまの状況 2016/1/17 11
  12. 12. コンテンツサイズ 2016/1/17 12
  13. 13. コンテンツを素早く配信するには • 帯域を用意する • 10Mより100M • 100Mより1G 2016/1/17 13
  14. 14. 帯域とレイテンシ ページの表示時間はこ れ以上短縮できない ちゃんと下がる 2016/1/17 14
  15. 15. Latencyを少なくするために • 回線帯域よりもレイテンシ(RTT)を小さくする • Round Trip Time • 物理的に近いサーバを利用(CDN) • 地域IX? • Round Tripを減らす • アクセス回数を減らす 2016/1/17 15
  16. 16. モバイルトラフィック 2016/1/17 16
  17. 17. 2016/1/17 17
  18. 18. 2016/1/17 18
  19. 19. Mobile環境での遅延 0 20 40 60 80 100 120 EMOBILE LTE EMOBILE 4G Xi フレッツ光 2016/1/17 19
  20. 20. HTTP/2が出てきた背景 • トラフィック増加 • 遅延が損失に直結 • モバイル通信では遅延が大きくなる 2016/1/17 20
  21. 21. HTTP/1.1は多重性がない • 1RTTあたり1Request/Responseしか送受信できない • 毎回3WHS発生 • 対策 複数TCP接続を使う • 同時6セッションが一般的 Client Server request responseRTT RTT request response 2016/1/17 21
  22. 22. HTTP/2の特徴 • ヘッダ圧縮 • マルチプレキシング • バイナリープロトコル • フロー制御 2016/1/17 22
  23. 23. HTTP/2とブラウザ • Webページの描画が早くなる • Webページを構成する要素の取得 • HTTPリクエストの通信が速くなる • 接続済みのTLSを使ってリクエスト • 3Way Handshakingがいらない • 最初に見たいものを優先して取得 • プライオリティ、サーバPush • 遅い(遅延の大きい)ネットワークで生きてくる 2016/1/17 23
  24. 24. HTTP/2対応ブラウザ 2016/1/17 24
  25. 25. 2016/1/17 25
  26. 26. ブラウザのシェア(国内) 0 5 10 15 20 25 30 35 40 Google Chrome 46.0 Internet Explorer 11.0 Firefox 42.0 Google Chrome for Android Firefox 41.0 Safari 9.0 Internet Explorer 9.0 Internet Explorer 8.0 Internet Explorer 10.0 その他 2016/1/17 26
  27. 27. Mobile 2016/1/17 27
  28. 28. 2016/1/17 28
  29. 29. 2016/1/17 29 iOS 9 71% iOS 8 21% Earlier 8%
  30. 30. HTTP/2を利用するには • 対応サーバが徐々に増えてきている • nginx (1.9.5) • IIS • In October, we announced that IIS in the Windows 10 Technical Preview added support for HTTP/2. • Apache(2.4.17) • h2o • hghttpx2 2016/1/17 30
  31. 31. h2o • DeNAの方が出してあるOSS • 2014年夏から開発 • the optimized HTTP/1.x, HTTP/2 server • まともに動くHTTP/2サーバ • 本番環境投入が可能 • Compare resource loading between HTTP/2 (H2O) and HTTP/1.1 (Nginx) 2016/1/17 31
  32. 32. 一番手軽なh2o • リバースプロキシとしての利用 • 同一ホストや同一iDC(Region)ならLatencyは小さい 2016/1/17 32
  33. 33. 社内での利用 • AWS上のzabbixがHTTP/2 • 画像が多い=アクセス回数が増える • HTTP/1.1より高速なはず^^;; • 東京RegionだとLatencyそんなに悪くはない 2016/1/17 33
  34. 34. HTTP/2とHTTP/1.1の速度差 • https://http2.redbox.ne.jp/?cid=blogredbox • 2015/12/25 16:04 iPhone 6s Plus 2016/1/17 34 HTTP/1.1 HTTP/2 差 Wi-Fi 0.85秒 0.66秒 0.19s(1.2倍) au LTE 31.57秒 0.72秒 30.85s(43.8倍) au LTE 50.38秒 1.04秒 49.34s(48.4倍)
  35. 35. HTTP/2対応しない理由はない 2016/1/17 35
  36. 36. HTTP/2メリット • ページの表示が速くなる • TCPの接続数が少なくてい い • サーバ台数減らせる=コス ト削減 HTTP/2 デメリット • 対応サーバがまだ多くな い • 気のせい? • TLS前提 • RFC的には必須ではないは ず • 実装では必須 2016/1/17 36
  37. 37. HTTP/2が普及するには • nginxやApacheのパッケージ版で使える事 • AWSやGCEのLoad Balancingで使える事 • 証明書のコスト負担を下げること • StartSSLやLet’s Encrypt 2016/1/17 37
  38. 38. HTTP/2対応の次期は今 まとめ 2016/1/17 38
  39. 39. おまけ PHP 7について 2016/1/17 39
  40. 40. PHP7 • 10年ぶりのアップデート • 12月3日にrelease • PHP6はスキップ • PHP7の特徴 • 内部的なデータ構造が変更により高速化 • PHP 5.6と比較して2倍高速 • メモリ使用量も50%改善 • 抽象構文木の導入 2016/1/17 40
  41. 41. 2016/1/17 41
  42. 42. 個人利用 • https://www.barasu.org/ • フロント(h2o + PHP7 + WordPress) • HTTP/2 Ready • 116.94.0.124 - - [28/Dec/2015:15:54:30 +0900] "GET /favicon.ico HTTP/2" 200 0 "https://www.barasu.org/pc/11589.html" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36" 2016/1/17 42
  43. 43. 速度測定 PHP 5.4(GTMetrix) 2016/1/17 43
  44. 44. 速度測定 PHP7(GTMetrix) 2016/1/17 44
  45. 45. 懇親会会場 • 居酒屋 魚関 • 沖縄県宜野湾市宇地泊588-16 • 3,000円/人 • 飲み放題 • 食べ放題 • 17名で予約 • 18:00~ 2016/1/17 45

×