「HTTP/2」の版間の差分
提供: セキュリティ
行41: | 行41: | ||
TLS 1.3では、禁止事項は対象外になる | TLS 1.3では、禁止事項は対象外になる | ||
== 関連項目 == | == 関連項目 == | ||
− | * | + | * nghttp2 |
* [[SPDY]] | * [[SPDY]] | ||
* [[TLS]] | * [[TLS]] | ||
<!-- vim: filetype=mediawiki | <!-- vim: filetype=mediawiki | ||
--> | --> |
2016年1月11日 (月) 21:40時点における最新版
HTTP/2(HTTP2, 旧HTTP/2.0) とは、ウェブサーバとブラウザの間で使われるプロトコルで、Hypertext Transfer Protocolの次期バージョンです。
読み方
- HTTP/2
- えいち てぃーてぃーぴー つー
- HTTP2
- えいち てぃーてぃーぴー つー
目次
概要
SPDYの要素を取り入れて、 HTTP/2として標準化が薦められています。
- ヘッダーの圧縮
- テキストプロトコルからバイナリプロトコルへ変更
- マルチセッション、ストリームによる多重化
HTTP/1.x
HTTP/1.1の課題
- 1つのTCPのコネクションでは、同時に複数のリクエストができません。1つのリクエストが完了するまで、次のリクエストが送信できません。
- 単一サーバに対する同時接続数は、数接続となっていました。IE8では単一サーバへの最大同時接続数は6でした。IE7以前は、2接続でした。
- 並列にリクエストをするためには、複数のTCPのコネクションが必要です。
- Pipeliningは、1コネクションで複数リクエストが送信できたが、一番長い処理にレスポンスが引きずられました。
HTTP/1.x時代のヘッダの仕様
- ヘッダは、テキストフォーマット
- ヘッダとボディの区切りは、空改行
HTTP2
特徴
マルチセッション
- 1つのTCPのコネクションを複数の論理的なストリームとして利用でき、1つのコネクションで並列にリクエストが送信可能です。1ユーザあたりの接続数が減ります。
- レスポンスは、リクエストの順番には依存しません。
HTTPSの通信の開始
- TLSのネゴシーエションを行う時、アプリケーションレイヤーで利用するプロトコルを選択します。ALPN ( Application Layer Protocol Negotiation) を使用します。
セキュリティ
- 圧縮機能の利用禁止(CRIME攻撃対策)
- 再ネゴシエーションの利用禁止
- 暗号スイートが必須
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS 1.3では、禁止事項は対象外になる