Windows2016 IISのHTTP2サポート状況について

現場でWEBサーバの高速化でHTTP2というキーワードが出てくるようになりました。必ずしもHTTP2が高速になるというわけではないようですが、1セッションで複数の処理が可能になるので、爆速になるという計測数値も出ています。


そして、HTTP2はWindows Server 2016のIISで使えるということで、マイクロソフトの情報を探しましたが、サポートしているようです。


元記事はこちら。

HTTP/2 on IIS | Microsoft Docs


以下は抜粋です。※英語を翻訳しています。

 

HTTP2とは何ですか?

HTTP / 2は、TCP接続上でのHTTPセマンティクスの流れを再現したもので、Windows 10およびWindows Server 2016にはHTTP / 2のサポートがあります。HTTP / 2は、20年近くものHTTP / 1.1使用後のメジャーアップグレードであり、 Webサーバ上の待ち時間と接続負荷を軽減します。

 

HTTP / 1.1の主な進歩は、複数の要求を連続して処理する永続的な接続の使用でした。HTTP / 2では、永続的な接続を使用して複数の同時要求を処理できます。このプロセスでは、HTTP / 2には、ネットワーク上のHTTPの効率を向上させるいくつかの追加機能が導入されています。

 


HTTP / 2の使い方
あなたはすでにかもしれない!ほぼすべてのブラウザがすでに最新のリリースでHTTP / 2をサポートしており、現在のデータでは、すでに50%を超えるユーザーがHTTP / 2対応のブラウザを使用していることがわかります。

 

サーバー上では、Windows 10またはWindows Server 2016上で実行されているIISはHTTP / 2をサポートしています。

 

IISは現在、TLSでのみHTTP / 2をサポートしています。Windows 10上でIISを実行しているWebサーバーにHTTPS接続する場合、クライアントとサーバーの両方でサポートされている場合はHTTP / 2が使用されます。IISでは、HTTP / 2を可能な限り透過的に実装しています.HTTP / 2が動作するようにアプリケーション内の何かを変更する必要はありません。ただし、特定のHTTP / 1.1の最適化(ドメインシャーディング、インライン化など)はHTTP / 2では推奨されませんので、将来的にこれらを削除する予定です。


クライアントとサーバーの両方が対応していれば自動的に使われるそうです。Windows Server 2016にIISをたてて動作確認してみましたが、デフォルトでHTTP2が動作しました。リバプロとして動作させた場合は、バックエンドのサーバに影響されて動作します。このあたりは、nginxのほうが強制力がありそうです。