SlideShare una empresa de Scribd logo
1 de 26
Descargar para leer sin conexión
ハイパフォーマンスブラウザネッ 
トワーキング読書会 
12章 「HTTP 2.0」と現在の仕様 
2014-08-28 
@hagino3000
最初に 
本文中にあるHTTP 2.0という表記は既に無くなっ 
たので引用以外の箇所はHTTP/2でいきます。 
! 
2014/08/28現在の仕様を反映した感じ(ラスト 
コールとなったdraft 14ベース)で説明をします。
HTTP/2の歴史とSPDY 
• SPDYの目標 
• HTTP 1.1のパフォーマンスの制限に対処する事で、Webページのロー 
ディングで発生するレイテンシを削減する事 
• PLT 50%削減 
• Webサイト開発者によるコンテンツの変更を発生させない 
• ネットワークインフラの変更を避ける 
• オープンソースコミュニティと強力して新たなプロトコルを開発する 
• 実世界のパフォーマンスデータを収集し、この実験的プロトコルを検証 
抜粋:: Ilya Grigorik. “ハイパフォーマンス ブラウザネットワーキング”。 iBooks. https:// 
itunes.apple.com/WebObjects/MZStore.woa/wa/
SPDYの普及 
• chrome://net-internals/#spdy 参照 
• Twitter, Googleのサービスは対応しているのがわかる 
• ChromeのStable版だとSPDY3.1が使われる
HTTP/2 
• TCPを使用するHTTP 1.1と比較して、ほとんどの場合にエンドユーザが認識するレイテンシ 
に劇的かつ測定可能な改善をもたらす。 
• HTTPのHoLブロッキングに対処する。 
• 並列性を確保するために複数の接続に頼らない。特に輻輳制御においてTCPの使用を改善す 
る。 
• →HTTP 1.1のパフォーマンスの制限を取りはらう 
• HTTP 1.1の様式を保持する。HTTPメソッド、ステータスコード、URI、そして必要な場合 
はヘッダフィールドなどを含む、既存のドキュメンテーションを活用する。 
• →HTTP 1.1の文法は変えない 
• HTTP 2.0とHTTP 1.xの相互作用を明確に定義する。特に中間装置での扱いについて。 
• →中間装置での扱い?? (^ω^;) 
• 新しい拡張ポイントがあればそれを明確に定義し、その適切な使用法のポリシーを確立する 
抜粋:: Ilya Grigorik. “ハイパフォーマンス ブラウザネットワーキング”。 iBooks. https:// 
itunes.apple.com/WebObjects/MZStore.woa/wa/
つまり 
• HTTP 1.1のパフォーマンスの制限を解決する 
• インタフェース(HTTPの文法)は変えない 
• Webサイトのコンテンツに変更は必要ない 
• HTTPSの様に、透過的に処理される
HTTP/2 draft 14 
2014年8月1日、HTTP/2仕様はdraft14でラストコールに。Chrome 
Canary, Firefox Nightlyで試せる。 
日本語訳 http://summerwind.jp/docs/draft-ietf-httpbis-http2-14/
ストリーム・メッセージ・フレーム 
ストリーム双方メッセージを長す仮想チャネル 
メッセージ個々のHTTPリクエスト、レスポンス 
フレーム 
HTTP/2の最小の通信単位 (HEADERS, 
DATA ,GOAWAY, PING, SETTING 
etc) 
単一のTCP接続を使い、複数の論理的なHTTPのメッセージを 
運ぶための仕組み。
抜粋:: Ilya Grigorik. “ハイパフォーマンス ブラウザネットワーキング”。 iBooks. https:// 
itunes.apple.com/WebObjects/MZStore.woa/wa/
抜粋:: Ilya Grigorik. “ハイパフォーマンス ブラウザネットワーキング”。 iBooks. https:// 
itunes.apple.com/WebObjects/MZStore.woa/wa/
Why 
• ブロックする事なく、複数の並列リクエストを 
インターリーブするため 
• ブロックする事なく、複数の並列レスポンスを 
インターリーブするため 
• HTTPのHoL Blockingの回避
1オリジンに1接続 
• 従来の複数接続を貼る方法に比べてサーバーの負荷が小さい 
• HTTP/2の接続は再利用される 
• GOAWAYフレームが届くまで切断しない、Keep Aliveよ 
りも強力なオーバヘッド削減効果 
• だが、TCPの制限を受けるケースではその影響が顕著に 
• TCPレベルのHoLブロッキング 
• 1個のパケットロスが全てのストリームを遅延させる
HTTP/2 over X もありうる 
“HTTP 2.0は以前のHTTPプロトコルと同 
様、必ずしもTCPを使用する必要がないこと 
を認識しておくことも重要です。UDPなど他 
のトランスポートにも可能性があるのです。” 
• 次のボトルネックはTCP 
• SPDYはQUICでも動作する 
• chrome://net-internals/#quic
ヘッダ圧縮 
• 仕様はHTTP/2とは別にHPACKとして策定 
• http://tools.ietf.org/html/draft-ietf-httpbis- 
header-compression-09 
• Draft 9でラストコール
図12-5の差分符号化は 
無かった事に 
HPACK draft 9で削除、よかったですね。
ヘッダ圧縮はどうなった 
• 次の3つは残った 
• Static Table 
• Header Table 
• Huffman Encoding
Static Table 
よく使うヘッダのKey, Valueの組のインデックス 
を持っておいて。マッチする場合はインデックス 
だけ送る 
Index Header Name Header Value 
1 :authority GET 
2 :method GET 
3 :method POST 
4 :path / 
… 
http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-09#appendix-B
サーバープッシュ 
• サーバーは1つのリクエストに対して、複数のレ 
スポンスを返す事ができる 
• プッシュされたコンテンツは、クライアントに 
キャッシュされる。 
• 例: index.htmlがリクエストされた時に 
index.htmlとfavicon.icoとstyle.css を返す
フロー制御 
• WINDOW_UPDATEフレームで、ストリーム 
毎、接続全体の受信可能なバイト数を通知でき 
る
フロー制御 
“フロー制御はホップ単位で行なわれ、エンドツーエンドではな 
い。” 
“[†2] 訳注 ホップ単位のフロー制御は、必ずしも送信者を直 
接制御することではありません。受信者のフロー制御の結果が 
経路上の次の中間装置を制御し、その影響が伝播することで最 
終的に送信者に影響を与えます。また、HTTPにおける「ホッ 
プ」はプロキシなどHTTPを理解する中間装置単位です。” 
どういう事?????
HTTP/2とTLS 
“HTTP 2.0はエンドツーエンドでサポートされている必要があり、 
中間装置が1つでも対応していない場合は接続が成功しません。 
HTTP 2.0自体はTLSの使用を必須としていませんが、上記の理由 
のため、既存の中間装置が多数存在するような状況下においては 
TLSの利用が最も安全なデプロイメントの方法です。” 
• TLSを使えば、中間装置からは唯のTLS通信にしか見えないので安全。 
• ChromeとFirefoxは平文HTTP/2は実装してない
HTTP/2のアップグレードフロー 
• あと10年はHTTP 1.xのサポートもしないといけない。 
• サーバーがHTTP/2に対応しているか不明な場合 
• HTTP 1.xで開始して、クライアントがHTTP/2に対応してい 
る事をサーバーに伝える 
• ALPN 
• 事前にわかっている場合 
• コネクションプリフェイス後にHTTP/2フレームを送って良い
バイナリフレーム 
フレーム長のフィールドは draft 14で24bitに
参考 
• HTTP/2 spec draft 14日本語訳 
• http://summerwind.jp/docs/draft-ietf-httpbis-http2- 
14/ 
• HPACK spec draft 9 
• http://tools.ietf.org/html/draft-ietf-httpbis-header-compression- 
09 
• QUIC 
• https://docs.google.com/document/d/ 
1RNHkx_VvKWyWg6Lr8SZ-saqsQx7rFV-ev2jRFUoVD34/ 
mobilebasic
ハイパフォーマンスブラウザネットワーキング 12章「HTTP 2.0」と現在の仕様

Más contenido relacionado

La actualidad más candente

HTTP 2.0のヘッダ圧縮(HPACK)
HTTP 2.0のヘッダ圧縮(HPACK)HTTP 2.0のヘッダ圧縮(HPACK)
HTTP 2.0のヘッダ圧縮(HPACK)
Jun Fujisawa
 
CategoLJについて
CategoLJについてCategoLJについて
CategoLJについて
Toshiaki Maki
 
Hadoop HDFS: The Ultimate Storage
Hadoop HDFS: The Ultimate StorageHadoop HDFS: The Ultimate Storage
Hadoop HDFS: The Ultimate Storage
SATOSHI TAGOMORI
 
ウェブアーキテクチャの歴史と未来
ウェブアーキテクチャの歴史と未来ウェブアーキテクチャの歴史と未来
ウェブアーキテクチャの歴史と未来
Kazuho Oku
 
Hgsubversionについて
HgsubversionについてHgsubversionについて
Hgsubversionについて
Takayuki Kondou
 
HTTP/2 でリバプロするだけでグラフツールを 高速化できた話
HTTP/2 でリバプロするだけでグラフツールを 高速化できた話HTTP/2 でリバプロするだけでグラフツールを 高速化できた話
HTTP/2 でリバプロするだけでグラフツールを 高速化できた話
Naotoshi Seo
 
#mailerstudy 01 LT POP/IMAP入門
#mailerstudy 01 LT POP/IMAP入門#mailerstudy 01 LT POP/IMAP入門
#mailerstudy 01 LT POP/IMAP入門
Takashi Takizawa
 

La actualidad más candente (20)

HTTP 2.0のヘッダ圧縮(HPACK)
HTTP 2.0のヘッダ圧縮(HPACK)HTTP 2.0のヘッダ圧縮(HPACK)
HTTP 2.0のヘッダ圧縮(HPACK)
 
CategoLJについて
CategoLJについてCategoLJについて
CategoLJについて
 
RPCノード構築方法【Litecoin】
RPCノード構築方法【Litecoin】RPCノード構築方法【Litecoin】
RPCノード構築方法【Litecoin】
 
CentOSでつくる神Plesk
CentOSでつくる神PleskCentOSでつくる神Plesk
CentOSでつくる神Plesk
 
動的ネットワークパス構築と連携したエッジオーバレイ帯域制御
動的ネットワークパス構築と連携したエッジオーバレイ帯域制御動的ネットワークパス構築と連携したエッジオーバレイ帯域制御
動的ネットワークパス構築と連携したエッジオーバレイ帯域制御
 
TLS & LURK @ IETF 95
TLS & LURK @ IETF 95TLS & LURK @ IETF 95
TLS & LURK @ IETF 95
 
新生Lagopus2017(仮称)
新生Lagopus2017(仮称)新生Lagopus2017(仮称)
新生Lagopus2017(仮称)
 
Hadoop HDFS: The Ultimate Storage
Hadoop HDFS: The Ultimate StorageHadoop HDFS: The Ultimate Storage
Hadoop HDFS: The Ultimate Storage
 
自分的pkgsrcの課題
自分的pkgsrcの課題自分的pkgsrcの課題
自分的pkgsrcの課題
 
Varnish
VarnishVarnish
Varnish
 
ウェブアーキテクチャの歴史と未来
ウェブアーキテクチャの歴史と未来ウェブアーキテクチャの歴史と未来
ウェブアーキテクチャの歴史と未来
 
OpenvSwitchのモニタリングと管理機能
OpenvSwitchのモニタリングと管理機能OpenvSwitchのモニタリングと管理機能
OpenvSwitchのモニタリングと管理機能
 
Hgsubversionについて
HgsubversionについてHgsubversionについて
Hgsubversionについて
 
Lagopus, raw socket build
Lagopus, raw socket buildLagopus, raw socket build
Lagopus, raw socket build
 
再入門、サーバープッシュ技術
再入門、サーバープッシュ技術再入門、サーバープッシュ技術
再入門、サーバープッシュ技術
 
HTTP/2 でリバプロするだけでグラフツールを 高速化できた話
HTTP/2 でリバプロするだけでグラフツールを 高速化できた話HTTP/2 でリバプロするだけでグラフツールを 高速化できた話
HTTP/2 でリバプロするだけでグラフツールを 高速化できた話
 
#mailerstudy 01 LT POP/IMAP入門
#mailerstudy 01 LT POP/IMAP入門#mailerstudy 01 LT POP/IMAP入門
#mailerstudy 01 LT POP/IMAP入門
 
QUIC標準化動向 〜2017/7
QUIC標準化動向 〜2017/7QUIC標準化動向 〜2017/7
QUIC標準化動向 〜2017/7
 
Freebsd ports と暮らす(5) 2012年を振り返る
Freebsd ports と暮らす(5) 2012年を振り返るFreebsd ports と暮らす(5) 2012年を振り返る
Freebsd ports と暮らす(5) 2012年を振り返る
 
HTTP/2時代のウェブサイト設計
HTTP/2時代のウェブサイト設計HTTP/2時代のウェブサイト設計
HTTP/2時代のウェブサイト設計
 

Destacado

ノンタッチUI時代とフロントエンドエンジニア (Using emotiv)
ノンタッチUI時代とフロントエンドエンジニア (Using emotiv)ノンタッチUI時代とフロントエンドエンジニア (Using emotiv)
ノンタッチUI時代とフロントエンドエンジニア (Using emotiv)
hagino 3000
 
PRML ベイズロジスティック回帰
PRML ベイズロジスティック回帰PRML ベイズロジスティック回帰
PRML ベイズロジスティック回帰
hagino 3000
 

Destacado (14)

Introduction of Leap Motion
Introduction of Leap MotionIntroduction of Leap Motion
Introduction of Leap Motion
 
Google App Engine で初めるServerSide JavaScript
Google App Engine で初めるServerSide JavaScriptGoogle App Engine で初めるServerSide JavaScript
Google App Engine で初めるServerSide JavaScript
 
Secure Code for Interactive Programming
Secure Code for Interactive ProgrammingSecure Code for Interactive Programming
Secure Code for Interactive Programming
 
JavaScriptとSalesforceとTwitterマーケティングな話をした時の資料
JavaScriptとSalesforceとTwitterマーケティングな話をした時の資料JavaScriptとSalesforceとTwitterマーケティングな話をした時の資料
JavaScriptとSalesforceとTwitterマーケティングな話をした時の資料
 
逃亡の勧め
逃亡の勧め逃亡の勧め
逃亡の勧め
 
はじめてのChaos Proxy Viewer
はじめてのChaos Proxy ViewerはじめてのChaos Proxy Viewer
はじめてのChaos Proxy Viewer
 
iOS WebView App
iOS WebView AppiOS WebView App
iOS WebView App
 
PRML 6.1章 カーネル法と双対表現
PRML 6.1章 カーネル法と双対表現PRML 6.1章 カーネル法と双対表現
PRML 6.1章 カーネル法と双対表現
 
ノンタッチUI時代とフロントエンドエンジニア (Using emotiv)
ノンタッチUI時代とフロントエンドエンジニア (Using emotiv)ノンタッチUI時代とフロントエンドエンジニア (Using emotiv)
ノンタッチUI時代とフロントエンドエンジニア (Using emotiv)
 
PRML ベイズロジスティック回帰
PRML ベイズロジスティック回帰PRML ベイズロジスティック回帰
PRML ベイズロジスティック回帰
 
Cloud DatalabとBigQueryを使ったアドホックデータ解析
Cloud DatalabとBigQueryを使ったアドホックデータ解析Cloud DatalabとBigQueryを使ったアドホックデータ解析
Cloud DatalabとBigQueryを使ったアドホックデータ解析
 
異常検知と変化検知 9章 部分空間法による変化点検知
異常検知と変化検知 9章 部分空間法による変化点検知異常検知と変化検知 9章 部分空間法による変化点検知
異常検知と変化検知 9章 部分空間法による変化点検知
 
スパース性に基づく機械学習 2章 データからの学習
スパース性に基づく機械学習 2章 データからの学習スパース性に基づく機械学習 2章 データからの学習
スパース性に基づく機械学習 2章 データからの学習
 
アドネットワークのデータ解析チームを支える技術
アドネットワークのデータ解析チームを支える技術アドネットワークのデータ解析チームを支える技術
アドネットワークのデータ解析チームを支える技術
 

Similar a ハイパフォーマンスブラウザネットワーキング 12章「HTTP 2.0」と現在の仕様

Node の HTTP/2.0 モジュール iij-http2 の実装苦労話
Node の HTTP/2.0 モジュール iij-http2 の実装苦労話Node の HTTP/2.0 モジュール iij-http2 の実装苦労話
Node の HTTP/2.0 モジュール iij-http2 の実装苦労話
shigeki_ohtsu
 
Stuart attacking http2 implementations truefinal-jp
Stuart  attacking http2 implementations truefinal-jpStuart  attacking http2 implementations truefinal-jp
Stuart attacking http2 implementations truefinal-jp
PacSecJP
 
httpbis interim とhttp2.0相互接続試験の話
httpbis interim とhttp2.0相互接続試験の話httpbis interim とhttp2.0相互接続試験の話
httpbis interim とhttp2.0相互接続試験の話
shigeki_ohtsu
 
【17-A-5】ウェブアーキテクチャの歴史と未来
【17-A-5】ウェブアーキテクチャの歴史と未来【17-A-5】ウェブアーキテクチャの歴史と未来
【17-A-5】ウェブアーキテクチャの歴史と未来
Developers Summit
 

Similar a ハイパフォーマンスブラウザネットワーキング 12章「HTTP 2.0」と現在の仕様 (20)

WebSocket Protocol と Plack::Middleware::WebSocket
WebSocket Protocol と Plack::Middleware::WebSocketWebSocket Protocol と Plack::Middleware::WebSocket
WebSocket Protocol と Plack::Middleware::WebSocket
 
HTTP/2.0と標準化
HTTP/2.0と標準化HTTP/2.0と標準化
HTTP/2.0と標準化
 
HTTP2 時代の Web - web over http2
HTTP2 時代の Web - web over http2HTTP2 時代の Web - web over http2
HTTP2 時代の Web - web over http2
 
Ietf97 ソウル報告
Ietf97 ソウル報告Ietf97 ソウル報告
Ietf97 ソウル報告
 
Node の HTTP/2.0 モジュール iij-http2 の実装苦労話
Node の HTTP/2.0 モジュール iij-http2 の実装苦労話Node の HTTP/2.0 モジュール iij-http2 の実装苦労話
Node の HTTP/2.0 モジュール iij-http2 の実装苦労話
 
H2O - making HTTP better
H2O - making HTTP betterH2O - making HTTP better
H2O - making HTTP better
 
Stuart attacking http2 implementations truefinal-jp
Stuart  attacking http2 implementations truefinal-jpStuart  attacking http2 implementations truefinal-jp
Stuart attacking http2 implementations truefinal-jp
 
httpbis interim とhttp2.0相互接続試験の話
httpbis interim とhttp2.0相互接続試験の話httpbis interim とhttp2.0相互接続試験の話
httpbis interim とhttp2.0相互接続試験の話
 
Web基礎
Web基礎Web基礎
Web基礎
 
20120525 mt websocket
20120525 mt websocket20120525 mt websocket
20120525 mt websocket
 
Status 425 HTTP/Tokyo
Status 425 HTTP/Tokyo Status 425 HTTP/Tokyo
Status 425 HTTP/Tokyo
 
RouterBOARD with OpenFlow
RouterBOARD with OpenFlowRouterBOARD with OpenFlow
RouterBOARD with OpenFlow
 
The Twelve-Factor App (2017)
The Twelve-Factor App (2017)The Twelve-Factor App (2017)
The Twelve-Factor App (2017)
 
【17-A-5】ウェブアーキテクチャの歴史と未来
【17-A-5】ウェブアーキテクチャの歴史と未来【17-A-5】ウェブアーキテクチャの歴史と未来
【17-A-5】ウェブアーキテクチャの歴史と未来
 
Havana版 RDO-QuickStart-2 (140421-Havana-RDO-QuickStart-2.pdf)
Havana版 RDO-QuickStart-2 (140421-Havana-RDO-QuickStart-2.pdf) Havana版 RDO-QuickStart-2 (140421-Havana-RDO-QuickStart-2.pdf)
Havana版 RDO-QuickStart-2 (140421-Havana-RDO-QuickStart-2.pdf)
 
HTTPとサーバ技術の最新動向
HTTPとサーバ技術の最新動向HTTPとサーバ技術の最新動向
HTTPとサーバ技術の最新動向
 
Webrtc最新動向
Webrtc最新動向Webrtc最新動向
Webrtc最新動向
 
HTTPを理解する
HTTPを理解するHTTPを理解する
HTTPを理解する
 
20161017 みんてくapacheでhttp/2
20161017 みんてくapacheでhttp/220161017 みんてくapacheでhttp/2
20161017 みんてくapacheでhttp/2
 
ゲームの通信をつくる仕事はどうなるのだろう?
ゲームの通信をつくる仕事はどうなるのだろう?ゲームの通信をつくる仕事はどうなるのだろう?
ゲームの通信をつくる仕事はどうなるのだろう?
 

Más de hagino 3000 (6)

Where does my money go チーム発表
Where does my money go チーム発表Where does my money go チーム発表
Where does my money go チーム発表
 
NUIとKinect
NUIとKinectNUIとKinect
NUIとKinect
 
今日からはじめるKinect Hack
今日からはじめるKinect Hack今日からはじめるKinect Hack
今日からはじめるKinect Hack
 
Introduction of Kinect Hacks
Introduction of Kinect HacksIntroduction of Kinect Hacks
Introduction of Kinect Hacks
 
HTML5を使ったウェブアプリケーションの高速化
HTML5を使ったウェブアプリケーションの高速化HTML5を使ったウェブアプリケーションの高速化
HTML5を使ったウェブアプリケーションの高速化
 
Extjs + Gears
Extjs + GearsExtjs + Gears
Extjs + Gears
 

Último

Último (12)

Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 

ハイパフォーマンスブラウザネットワーキング 12章「HTTP 2.0」と現在の仕様

  • 1. ハイパフォーマンスブラウザネッ トワーキング読書会 12章 「HTTP 2.0」と現在の仕様 2014-08-28 @hagino3000
  • 2. 最初に 本文中にあるHTTP 2.0という表記は既に無くなっ たので引用以外の箇所はHTTP/2でいきます。 ! 2014/08/28現在の仕様を反映した感じ(ラスト コールとなったdraft 14ベース)で説明をします。
  • 3. HTTP/2の歴史とSPDY • SPDYの目標 • HTTP 1.1のパフォーマンスの制限に対処する事で、Webページのロー ディングで発生するレイテンシを削減する事 • PLT 50%削減 • Webサイト開発者によるコンテンツの変更を発生させない • ネットワークインフラの変更を避ける • オープンソースコミュニティと強力して新たなプロトコルを開発する • 実世界のパフォーマンスデータを収集し、この実験的プロトコルを検証 抜粋:: Ilya Grigorik. “ハイパフォーマンス ブラウザネットワーキング”。 iBooks. https:// itunes.apple.com/WebObjects/MZStore.woa/wa/
  • 4. SPDYの普及 • chrome://net-internals/#spdy 参照 • Twitter, Googleのサービスは対応しているのがわかる • ChromeのStable版だとSPDY3.1が使われる
  • 5.
  • 6. HTTP/2 • TCPを使用するHTTP 1.1と比較して、ほとんどの場合にエンドユーザが認識するレイテンシ に劇的かつ測定可能な改善をもたらす。 • HTTPのHoLブロッキングに対処する。 • 並列性を確保するために複数の接続に頼らない。特に輻輳制御においてTCPの使用を改善す る。 • →HTTP 1.1のパフォーマンスの制限を取りはらう • HTTP 1.1の様式を保持する。HTTPメソッド、ステータスコード、URI、そして必要な場合 はヘッダフィールドなどを含む、既存のドキュメンテーションを活用する。 • →HTTP 1.1の文法は変えない • HTTP 2.0とHTTP 1.xの相互作用を明確に定義する。特に中間装置での扱いについて。 • →中間装置での扱い?? (^ω^;) • 新しい拡張ポイントがあればそれを明確に定義し、その適切な使用法のポリシーを確立する 抜粋:: Ilya Grigorik. “ハイパフォーマンス ブラウザネットワーキング”。 iBooks. https:// itunes.apple.com/WebObjects/MZStore.woa/wa/
  • 7. つまり • HTTP 1.1のパフォーマンスの制限を解決する • インタフェース(HTTPの文法)は変えない • Webサイトのコンテンツに変更は必要ない • HTTPSの様に、透過的に処理される
  • 8. HTTP/2 draft 14 2014年8月1日、HTTP/2仕様はdraft14でラストコールに。Chrome Canary, Firefox Nightlyで試せる。 日本語訳 http://summerwind.jp/docs/draft-ietf-httpbis-http2-14/
  • 9. ストリーム・メッセージ・フレーム ストリーム双方メッセージを長す仮想チャネル メッセージ個々のHTTPリクエスト、レスポンス フレーム HTTP/2の最小の通信単位 (HEADERS, DATA ,GOAWAY, PING, SETTING etc) 単一のTCP接続を使い、複数の論理的なHTTPのメッセージを 運ぶための仕組み。
  • 10. 抜粋:: Ilya Grigorik. “ハイパフォーマンス ブラウザネットワーキング”。 iBooks. https:// itunes.apple.com/WebObjects/MZStore.woa/wa/
  • 11. 抜粋:: Ilya Grigorik. “ハイパフォーマンス ブラウザネットワーキング”。 iBooks. https:// itunes.apple.com/WebObjects/MZStore.woa/wa/
  • 12. Why • ブロックする事なく、複数の並列リクエストを インターリーブするため • ブロックする事なく、複数の並列レスポンスを インターリーブするため • HTTPのHoL Blockingの回避
  • 13. 1オリジンに1接続 • 従来の複数接続を貼る方法に比べてサーバーの負荷が小さい • HTTP/2の接続は再利用される • GOAWAYフレームが届くまで切断しない、Keep Aliveよ りも強力なオーバヘッド削減効果 • だが、TCPの制限を受けるケースではその影響が顕著に • TCPレベルのHoLブロッキング • 1個のパケットロスが全てのストリームを遅延させる
  • 14. HTTP/2 over X もありうる “HTTP 2.0は以前のHTTPプロトコルと同 様、必ずしもTCPを使用する必要がないこと を認識しておくことも重要です。UDPなど他 のトランスポートにも可能性があるのです。” • 次のボトルネックはTCP • SPDYはQUICでも動作する • chrome://net-internals/#quic
  • 15. ヘッダ圧縮 • 仕様はHTTP/2とは別にHPACKとして策定 • http://tools.ietf.org/html/draft-ietf-httpbis- header-compression-09 • Draft 9でラストコール
  • 16. 図12-5の差分符号化は 無かった事に HPACK draft 9で削除、よかったですね。
  • 17. ヘッダ圧縮はどうなった • 次の3つは残った • Static Table • Header Table • Huffman Encoding
  • 18. Static Table よく使うヘッダのKey, Valueの組のインデックス を持っておいて。マッチする場合はインデックス だけ送る Index Header Name Header Value 1 :authority GET 2 :method GET 3 :method POST 4 :path / … http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-09#appendix-B
  • 19. サーバープッシュ • サーバーは1つのリクエストに対して、複数のレ スポンスを返す事ができる • プッシュされたコンテンツは、クライアントに キャッシュされる。 • 例: index.htmlがリクエストされた時に index.htmlとfavicon.icoとstyle.css を返す
  • 20. フロー制御 • WINDOW_UPDATEフレームで、ストリーム 毎、接続全体の受信可能なバイト数を通知でき る
  • 21. フロー制御 “フロー制御はホップ単位で行なわれ、エンドツーエンドではな い。” “[†2] 訳注 ホップ単位のフロー制御は、必ずしも送信者を直 接制御することではありません。受信者のフロー制御の結果が 経路上の次の中間装置を制御し、その影響が伝播することで最 終的に送信者に影響を与えます。また、HTTPにおける「ホッ プ」はプロキシなどHTTPを理解する中間装置単位です。” どういう事?????
  • 22. HTTP/2とTLS “HTTP 2.0はエンドツーエンドでサポートされている必要があり、 中間装置が1つでも対応していない場合は接続が成功しません。 HTTP 2.0自体はTLSの使用を必須としていませんが、上記の理由 のため、既存の中間装置が多数存在するような状況下においては TLSの利用が最も安全なデプロイメントの方法です。” • TLSを使えば、中間装置からは唯のTLS通信にしか見えないので安全。 • ChromeとFirefoxは平文HTTP/2は実装してない
  • 23. HTTP/2のアップグレードフロー • あと10年はHTTP 1.xのサポートもしないといけない。 • サーバーがHTTP/2に対応しているか不明な場合 • HTTP 1.xで開始して、クライアントがHTTP/2に対応してい る事をサーバーに伝える • ALPN • 事前にわかっている場合 • コネクションプリフェイス後にHTTP/2フレームを送って良い
  • 25. 参考 • HTTP/2 spec draft 14日本語訳 • http://summerwind.jp/docs/draft-ietf-httpbis-http2- 14/ • HPACK spec draft 9 • http://tools.ietf.org/html/draft-ietf-httpbis-header-compression- 09 • QUIC • https://docs.google.com/document/d/ 1RNHkx_VvKWyWg6Lr8SZ-saqsQx7rFV-ev2jRFUoVD34/ mobilebasic