HTTP ネゴシエーション

openssl s_clientとs_serverでalpnを指定する方法

openssl s_clientとs_serverでNPNを指定する方法 に引き続きalpnの指定方法 OpenSSL 1.0.2からalpnに対応している。openssl s_clientやs_serverでもハンドシェイク時のネゴシエーションが指定できる。 ネゴシエーション時の簡単な挙動を確認したいときは手軽…

openssl s_clientとs_serverでNPNを指定する方法

alpnはこちら「openssl s_clientとs_serverでalpnを指定する方法」 OpenSSL 1.0.1からNPNに対応している。openssl s_clientやs_serverでもハンドシェイク時のネゴシエーションが指定できる。 ネゴシエーション時の簡単な挙動を確認したいときは手軽である。 …

DNSを用いたHTTP2.0対応の確認方法、SRVレコードとSVCINFOレコード

HTTP2.0では通信を開始する前に、HTTP1.1で通信するかHTTP2.0で通信するかネゴシエーションする必要がある。DNSレコードを利用してサーバがHTTP2.0に対応しているか確認する方法が提案されている。 SRVレコード SRVレコードを用いる場合は以下のようになる。…

TLS上でのプロトコルネゴシエーションの仕組み、NPNとALPN

(この記事は古いため、HTTP2.0と表記していますが、正しくはHTTP/2です) (HTTP ConnectメソッドのALPNヘッダは「ALPN HTTP Headerとは」) TLS-NPN(Next Protocol Negotiation) SPDYはHTTPSと同一ポートで接続を受け付けるため、SPDYの通信を開始する前にどち…

HTTP2.0におけるネゴシエーションの仕組み

HTTP1.0とHTTP1.1は同じメッセージ形式をしていたので問題なかったが、HTTP2.0とHTTP1.xではメッセージの形式が異なるため通信を行えない。 そのため、どちらで通信するかネゴシエーションする必要がある。httpbis wgでは幾つかの方法が提案されている DNSの…