SlideShare a Scribd company logo
1 of 27
Download to read offline
ネゴシエーションの話
yuki
自己紹介
・ゆき
・社会人4月目
・最弱インフラエンジニア...orz
・趣味
  一応、プロトコルとかセキュリティとか
  あと、ウクレレとか
あすのかぜってブログで、HTTP2.0界隈の記事を
ひっそり書いてます
他の登壇者
ガチ勢過ぎて恐ろしいです...
お手柔らかにorz
HTTP2.0の機能
ざっくりと
● アップグレードメカニズム(ネゴシエーション)
● メッセージの多重化
● フロー制御
● 優先処理
● ヘッダ圧縮
● サーバプッシュ
HTTP2.0の機能
ざっくりと
● アップグレードメカニズム(ネゴシエーション)
● メッセージの多重化
● フロー制御
● 優先処理
● ヘッダ圧縮
● サーバプッシュ
アップグレードメカニズム(ネゴシエーション)
● HTTP1.xはテキストで、HTTP2.0はバイナリでデータの送
受信が行われる
● HTTP1.xとHTTP2.0ではセマンティクスは維持されるもの
の、データの形式が違う
● そのため、それぞれで通信することは出来無い
それぞれで通信できない上、HTTP1.xもHTTP2.0
も使用するポート番号は同じ...
→アップグレードメカニズム
アップグレードメカニズム(ネゴシエーション)
3つの方法
仕様の「3 Starting HTTP/2.0」にHTTP2.0の開始
方法が述べられている
1. HTTPの場合
2. HTTPS(SSLを使用する)場合
3. 事前にHTTP2.0に対応してることを知ってる場合
HTTPの場合
HTTP1.xで通信を開始して、Upgradeヘッダを用
いてHTTP2.0に切り替える
GET /default.htm HTTP/1.1
Host: server.example.com
Connection: Upgrade, HTTP2-Settings
Upgrade: HTTP/2.0
HTTP2-Settings: <base64url encoding of HTTP/2.0 SETTINGS payload>
HTTP/1.1 101 Switching Protocols
Connection: Upgrade
Upgrade: HTTP/2.0
[ HTTP/2.0 connection ...
HTTPリクエスト
HTTPレスポンス
HTTPSの場合
主に二つの方法が議論されている
● TLS-NPN
● TLS-ALPN
両方とも、TLSのハンドシェイク中に使用するプロト
コルもネゴシエーションしてしまう仕組み。
NPN
サーバから使用可能なプロトコルリストを送信する
ハンドシェイク中なのでその様子を見たりも出来る
ALPN
クライアントから使用可能なプロトコルリストを送信
する
NPNとALPN何が違うの
● 使用出来るプロトコルのリストをどちらが提示す
るか
● 選択できるプロトコルがリストになかった場合の
処理が明確化されているか(ALPNは明確)
● Selected Protocolが暗号化されるか
事前に知っている場合
実は、仕様上で詳しくは述べられていない
DNSを使う方法が議論はされていたが...
SRVレコード、SVCINFOレコードというレコードに
対応しているプロトコルを記述しておき、クライアン
トはサーバがHTTP2.0に対応しているか分かる
あと、SPDY2で使用されていたAlternate-Protocol
ヘッダを使用する場合も考えられる
誤って通信を開始してしまった場合
誤って、HTTP2.0に対応してないホストにHTTP2.0で
通信を開始してしまった場合...
HTTP1.xは改行をメッセージの終端として使用してい
る。
→
終端を待ち続ける。コネクションを切断しようとしない
コネクションヘッダ
コネクション(HTTP2.0の通信)を開始する際、コネ
クションヘッダとして以下の文字列を送信する
PRI * HTTP/2.0rnrnSMrnrn
HTTP1.xのサーバであれば、改行文字が含まれ
ているため、即座に向こうなメッセージとして切断さ
れる
ヘッダ圧縮
超概略
ヘッダ圧縮を行う理由
● HTTP1.xでは同じようなヘッダを毎回送る
(例えばUserAgentやAcept系のヘッダ)
● HTTP1.xではテキスト形式でデータを送信している
● SSLでの圧縮にCRIME攻撃という攻撃手法が見つかって
いる
・ヘッダーテーブルを使って、一般的なヘッダ・一回
使ったヘッダはindexを用いて表現する
・ヘッダはReference Setとして管理され、その差分情
報のみ送る
ヘッダ圧縮の仕組み
header table
index header value
0 :scheme http
1 :scheme https
2 :host
3 :path /
4 :method GET
5 accept
6 accept-charset
…
36 via
37 warning
index header 200
0 :status
1 age
2 cache-control
3 content-length
4 content-type
5 date
6 etag
…
33 warning
34 www-authenticate
request header table response header table
index header value
0 :scheme http
1 :scheme https
…
36 via
37 warning
index header value
0 :scheme http
1 :scheme https
…
36 via
37 warning
header table header table
index=3,value=/my-example/index.html
index=12,value=my-user-agent
name=x-my-header,value=first
:path, /my-example/index.html
user-agent, my-user-agent
x-my-header, first
Reference Set
:path, /my-example/index.html
user-agent, my-user-agent
x-my-header, first
Reference Set
話がかぶった時用
個人的HTTP2.0の追い方
基本的な一次情報源は
● GitHub
○ http2.0 spec,compression spec,material(minutes)
■ commit
■ issue
■ wiki
● メーリングリスト
○ HTTP1.1に関するものも流れてくる...
個人的HTTP2.0の追い方
議論には、editionalなものとdesignのものがある。
気にしておくと追いやすい。あと、clarifyなどの単
語も。
(英語弱いので、commitログを見てから、議論追っ
たり...orz)
個人的HTTP2.0の追い方
二次情報源
 本日登壇者の方々のツイッターやブログなど...
インターネットウォッチ [HTTP 2.0の最新動向]
IETF86におけるHTTP/2.0関連トピックス
オライリー
High Performance Browser Networking
個人的HTTP2.0の追い方
あわせて眺めておきたい
● 「SPDY Protocol - Draft 3」の日本語訳。
● SPDYメーリングリスト
● TLS WGメーリングリスト
● 各種実装
● 各種OSSのコミットログ
○ chromium,firefox...

More Related Content

What's hot

Beam利用アプリ紹介+関連技術ネタ
Beam利用アプリ紹介+関連技術ネタBeam利用アプリ紹介+関連技術ネタ
Beam利用アプリ紹介+関連技術ネタKenichi Kambara
 
URIやTEXTをBEAMするアプリを作ったよ!
URIやTEXTをBEAMするアプリを作ったよ!URIやTEXTをBEAMするアプリを作ったよ!
URIやTEXTをBEAMするアプリを作ったよ!treby
 
Web packaging IETF 側
Web packaging IETF 側Web packaging IETF 側
Web packaging IETF 側yuki-f
 
NNTPについて簡単すぎる説明
NNTPについて簡単すぎる説明NNTPについて簡単すぎる説明
NNTPについて簡単すぎる説明Yuki Ito
 
低対話型サーバハニーポットの運用結果及び考察
低対話型サーバハニーポットの運用結果及び考察低対話型サーバハニーポットの運用結果及び考察
低対話型サーバハニーポットの運用結果及び考察Takaaki Hoyo
 
Webセキュリティと W3CとIETFの仕様
Webセキュリティと W3CとIETFの仕様Webセキュリティと W3CとIETFの仕様
Webセキュリティと W3CとIETFの仕様yuki-f
 

What's hot (7)

Beam利用アプリ紹介+関連技術ネタ
Beam利用アプリ紹介+関連技術ネタBeam利用アプリ紹介+関連技術ネタ
Beam利用アプリ紹介+関連技術ネタ
 
URIやTEXTをBEAMするアプリを作ったよ!
URIやTEXTをBEAMするアプリを作ったよ!URIやTEXTをBEAMするアプリを作ったよ!
URIやTEXTをBEAMするアプリを作ったよ!
 
Web packaging IETF 側
Web packaging IETF 側Web packaging IETF 側
Web packaging IETF 側
 
NNTPについて簡単すぎる説明
NNTPについて簡単すぎる説明NNTPについて簡単すぎる説明
NNTPについて簡単すぎる説明
 
低対話型サーバハニーポットの運用結果及び考察
低対話型サーバハニーポットの運用結果及び考察低対話型サーバハニーポットの運用結果及び考察
低対話型サーバハニーポットの運用結果及び考察
 
PHP+DB
PHP+DBPHP+DB
PHP+DB
 
Webセキュリティと W3CとIETFの仕様
Webセキュリティと W3CとIETFの仕様Webセキュリティと W3CとIETFの仕様
Webセキュリティと W3CとIETFの仕様
 

Recently uploaded

AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 

Recently uploaded (8)

AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 

http2.0 negotiation&header compression