次世代HTTPの規格であるHTTP/2では非暗号の通信も規格上では含まれていますが、現在の所、多くのブラウザ開発者は非暗号モードのHTTP/2を実装しないと表明しています。そのため、次世代HTTPプロトコルという意味合いでも、暗号通信の普及が進みそうです。
プロトコルネゴシエーション
HTTP/2では、新規にポート番号の割り当ては行われず、既存の80および443ポートが使用されます。そのため、80および443のそれぞれのポートにおいて、新旧二つのプロトコルをサポートする必要があります。
- 80ポート
- クライアントはHTTP/1.1によるUpgradeヘッダをサーバに送信し、HTTP/2の通信を始めます。この機能について、いくつかのサーバで実装が行われていますが、ブラウザ側については実装されるかわかりません(前述)。
- 443ポート
- クライアントはTLSセッション開始時に、TLS拡張であるNPN (Next Protocol Negotiation)もしくはALPN(Application-Layer Protocol Negotiation)を使用し、HTTP/2の通信を始めます。
逆に言うと、80番ポートでのHTTP/2は、クライアント側の実装が未定であり、443番ポートのHTTP/2についてはTLS(1.2)が必須です。このあたりが、HTTP/2ではTLS(SSL)が必須と呼ばれるゆえんとなっています。
ブラウザ
Firefoxを開発するMozilaは、2015年4月30日に、Mozilla Security Blogにおいて以下の開発方針をアナウンスしました:
- 新機能はHTTPSのみに限定して提供する
- セキュアでないサイトについては、使用できる機能を限定する