Upgrade to Pro — share decks privately, control downloads, hide ads and more …

HTTP/2.0 入門

tsuyoshi nakamura
September 30, 2016

HTTP/2.0 入門

HTTP/2.0 入門

tsuyoshi nakamura

September 30, 2016
Tweet

More Decks by tsuyoshi nakamura

Other Decks in Science

Transcript

  1. 2016.09-30
    社内勉強会
    @nakamura_tsuyo4
    HTTP/2 入門

    View Slide

  2. Agenda
    HTTP/2の内容を見る
    HTTPの歴史
    対応状況
    考察
    関連情報

    View Slide

  3. History
    About HTTP
    1

    View Slide

  4. History
    1996 HTTP/1.0
    1991 HTTP/0.9
    1999 HTTP/1.1
    2015 HTTP/2.0

    View Slide

  5. History
    2009年 GoogleからSPDY
    ◦ SPDY/1
    ◦ SPDY/2
    ◦ SPDY/3
    ◦ SPDY/3.1

    View Slide

  6. SPDYの進化版でHTTP/2の開発
    ◦ IETFのHTTPBisのワーキンググルー
    プが進める
    ◦ RFC7540としてRFC化
    History

    View Slide

  7. HTTPBis
    Bisってなに...
    小ネタ

    View Slide

  8. HTTPBis
    Bisはラテン語系(french,spanish,)で「繰り返し」
    「再び」という意味がある
    HTTPのsecond version of protocol

    View Slide

  9. ブラウザとWebサーバの
    実装によって実現
    だからRFCやらIETFというwordがでてくる

    View Slide

  10. HTTP/2
    2

    View Slide

  11. About HTTP/2
    http://blog.redbox.ne.jp/http2-cdn.html
    ストリームの多重化

    View Slide

  12. About HTTP/2
    ストリームの優先度
    ◦ Dependency Weighting
    ◦ PRIORITY Frame
    ◦ ブラウザが更新

    View Slide

  13. About HTTP/2
    headerの圧縮
    ◦ HPACK (RFC7541)
    ◦ ネットワーク帯域の節約

    View Slide

  14. About HTTP/2
    フローの制御
    ◦ Stream毎に制御可能
    ▫ ひとつのストリームが帯域リソースの占有を防ぐ
    ▫ 重い動画や画像のダウンロード時にとか

    View Slide

  15. About HTTP/2
    サーバプッシュ
    http://codezine.jp/article/detail/8663?p=2

    View Slide

  16. About HTTP/2
    接続 -だいたいALPN-
    ◦ ALPN
    ▫ Application-Layer Protocol Negotiation
    ▫ サーバ側がプロトコルを選択
    ◦ NPN
    ▫ Next Protocol Negotiation
    ▫ クライアントがプロトコルを選択

    View Slide

  17. Correspondence table
    Browser and Server
    3

    View Slide

  18. 対応状況 -ブラウザ-
    ブラウザ 対応バージョン
    Chrome 42以上
    Firefox 38以上
    IE Windows 10上のInternet Explorer 11
    ※2016.09.29時点mac chromeの最新は53
    ※検索するとほとんどのモダンブラウザであれば対応済みと考えて良さそう
    ※どのブラウザもTLS拡張(ALPN)が必要

    View Slide

  19. 対応状況 -サーバ-
    サーバ 対応バージョン
    Nginx 1.9.5以上
    Apache 2.4系以上
    Tomcat 9以上
    ※TLS拡張にはOpenSSLの1.0.2が必要

    View Slide

  20. 考察
    4

    View Slide

  21. 効果が薄いパターン
    ◦ すでに複数ドメインで運用しているサイト
    ◦ リクエスト数少ないサイト
    ◦ HTTPSを使ってないサイト

    View Slide

  22. 効果が高いパターン
    ◦ 通信回線が弱いユーザ(mobile含む)
    ▫ 逆に回線の良いユーザには体感しづらい
    ◦ そもそもアクセスがおおいサイト
    ◦ 動画や重い画像を扱ってるサイト
    ◦ すでにCDNを使っててもCDN屋さんでHTTP2対応さ
    れてるので活用メリットはある
    ▫ https://http2.akamai.com/demo
    ◦ GoogleBotもHTTP2をサポートするらしいのでSEOで
    プラス効果が期待出来る

    View Slide

  23. 関連情報
    4

    View Slide

  24. その他
    Googleはすでに次の仕様策定中の様子
    ▫ QUIC
    ▫ UDPプロトコルも活用して高速化を目指す
    HTTP/2 and SPDY indicator
    ▫ Chrome extension
    http://www.rfc-editor.org/rfc/rfc7540.txt
    ▫ 原文

    View Slide