Using HTTP/2 with ARR and IIS 10

This article has been moved to its new home here:

I was asked a question about if the Application Request Router supports the HTTP 2 protocol on IIS 10 (not sure what it will be called).  I was pretty confident that it did, but nothing beats a test to confirm it.  So that is what I did.  I used this article here that contains some good information about HTTP/2 on IIS 10.  As I read through the instructions, the only requirement for using the HTTP/2 protocol is that the request is made over HTTPS.  And of course, you need IIS 10…

I found no difference in the setup of ARR on IIS 10, so this article here still seems to apply.  I prefer using the Web Platform Installer for adding IIS modules, but there are numerous techniques.

As shown in Figure 1, I created an ARR Server Farm called W2K16-IIS10

Figure 1, Using ARR on IIS 10 with http protocol version 2

On the Application Request Routing server (ARR), I added a binding for HTTPS on port 443 as shown in Figure 2.

Figure 2, SSL required for http protocol version 2 on IIS 10

To test and confirm that the HTTP/2 protocol is used, I access the ARR server using Microsoft Edge on Windows 10 and captured the Network trace using the F12 Developer Tools.  As you can see in Figure 3, HTTP/2 is shown in the Protocol column and thus supports my initial claim that ARR works with HTTP/2 on IIS 10.

Figure 3, Using the http/2 protocol over HTTPS from Microsoft Edge, to ARR on IIS 10





Comments (4)
  1. onurg says:

    How about output rules ? For instance if we were to run rules against the output (such as tag match) which is binary in HTTP2,  will that work too ?

  2. Hi Onurg, can you please provide a link to an example where this is described more and I will give it a try.

  3. fanoush says:

    does it make sense to use only on ARR load balancer without upgrading application servers in the web farm to 2016 too? will it call backend servers as http/1 and translate to http/2? does it work with ssl offloading i.e. when backend servers handle only http (as http/2 is supposed to work only over https)?

    1. ARR uses WinHTTP, which doesn’t support HTTP/2. So, the HTTP/2 connection will be terminated at the ARR box, and subsequent requests to the workers will be over HTTP.

Comments are closed.

Skip to main content