4
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

IISのhttp2サポートについてちょっとだけ

Last updated at Posted at 2015-12-15

この記事はhttp2 Advent Calendar 2015の15日目の記事です。

Disclaimer: Windowsの記事です。

WindowsとHTTP/2

WindowsがHTTP2をサポートすることが明らかになったのは2014年10月でした。Windows 10とWindows Server 2016のTechnical Previewが公開された時点で、IE11とIISにHTTP2が試験実装されていました。その後、Windows 10は製品版がリリースされましたが、Windows Server 2016はまだリリース日を迎えていません。2015年12月時点の、HTTP/2をサポートするWindowsはこちらです。

HTTP.sys

実際にはIISがHTTP/2に対応したというより、HTTPカーネルモードドライバ(HTTP.sys)がHTTP/2に対応したというのが正しいです。HTTP.sysについては説明記事をちょっとだけ書きました。独自のサーバーアプリケーションからHTTP.sysを利用するには、HTTP Server APIを呼び出します。HTTP Server APIについてはMSDNの以下のページを起点に見ていくといいでしょう。

Windows 10で試す

IISのHTTP2をWindows 10で試してみたい場合は、以下のようにします。(参考:David So's Blog - HTTP/2 on IIS

「コントロールパネル」から「Windowsの機能の有効化または無効化」を選び、「インターネット インフォメーション サービス」を有効にします。

step1

インストールが完了したら「インターネット インフォメーション サービス(IIS) マネージャ」を起動し、機能ビューで「サーバー証明書」を選びます。

step2

操作ウィンドウで「自己署名入り証明書の作成」をクリックします(Let's Encryptなどでもいいのですが手作業が多く発生するので、ここはIISの自己署名証明書でいいでしょう)。

step3

「Default Web Site」で「サイトの編集」→「バインド…」をクリックして、新しくTLSバインディングを追加します。証明書には、先ほど作成した自己署名証明書を指定します。

step4

この状態で、https://localhost/ にアクセスすれば、HTTP/2が使われます。

WebアプリケーションのフロントWebサーバーとしてIISを使う

HTTP/2には依存しない話ですが……

クラシックASPやASP.NETを動かす場合の話は省略します。

PHPを動かす場合はFastCGIを使います。(ISAPI拡張+スレッドセーフPHPの組み合わせはオワコンです。)

それ以外のプラットフォーム(Java, Ruby, Python, Perl, Goなどなど)の場合は、HttpPlatformHandlerを構成します。

詳しくは

shibayanが日本語の記事をいくつか書いています(2014年のTechnical Previewの頃から不定期に書かれています)のでそちらも参照するとよいでしょう。

4
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?