I think have stumbled onto the answer to my question;
Q. Does Episerver officially support DXC environments running HTTP/2?
A. Assumed Yes based on the following...
Even with Azure HTTP Version set to 1.1
When I load the CMS over HTTPS on the DXC Integration environment, the Protocol is H2.
So until someone says otherwise, I'm going to assume this means Episerver DXC officially supports this.
I'd still love to hear from anyone who has designed their Project with HTTP/2 in mind.
Hi Darren
Episerver DXC is basically Azure Web Apps hidden behind a Cloudflare CDN proxy.
By default, Cloudflare supports and enables HTTP/2. For the Azure Web Apps (the origin servers), HTTP/2 is not enabled by default, as you concluded yourself.
You could probably ask Episerver to enable it on the origin servers, but it might not make that much of a difference. Because Cloudflare will cache most static files on their edge servers. And, as you mentioned, a HTTP/2 connection can be reused. This means that Cloudflare can serve dynamic content from the origin servers, as well as static files from their edge cache, over a single HTTP/2 connection.
Another thing, Darren.
Cloudflare supports a range of other great features. However, for Episerver DXC not all of them are enabled and/or officially supported. And you don't get to manage them yourself. Episerver Service Desk does that for customers and partners.
But for a recent project, I have requested them to enable 1) Brotli HTTP compression and 2) custom page rules. Both with great success.
Thanks for clarifying Stefan, and thanks for the tip for enabling Brotli on CloudFlare. When I last checked Brotli wasn't supported by IE11 (I know, who cares right!), but I assume it just falls back to gzip. Seen any other issues?
https://caniuse.com/#search=brotli
Exactly. It will fall back to something else.
The browser tells the server (here Cloudflare) which compression methods it supports, through the request header, Accept-Encoding (the value could be: “br, deflate, gzip”).
The server then tries to match the requested compression methods (in prioritized order) with those that it support.
In short: the server will only use a compression method that the browser explicitly tells the server that it supports.
I have seen some significant performance gains using HTTP/2 in other Web Applications so I'd like to know;
We've been able to use HTTP/2 in on-premise IIS for a while. But it was only last year that Azure App Services announced support for HTTP/2
https://blogs.msdn.microsoft.com/appserviceteam/2018/04/13/announcing-http2-support-in-azure-app-service/
I can see in the Azure Portal that all our Episerver DXC clients Integration environments are set to HTTP Version 1.1.
There's a lot to like about HTTP/2. I've seen some huge benefits by making use of its single TCP/IP connection and requesting in parallel. So I'm keen to know if I can start making use of this in DXC.