Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

HTTP/2 (HTTP2 or SPDY) on .NET

There's been a lot of news lately about the HTTP/2 standard, very similar to Google's SPDY.

It seems like most modern browsers support much of the functionality the finalized HTTP/2 draft lays out (see here, for example).

But, from the viewpoint of server side coding using ASP.NET and IIS, it's difficult to find much information from Microsoft about how this standard will be used in the .NET framework, especially with ASP.NET (see here).

What options are available for incorporating the technologies available through HTTP/2, in a solution currently using .NET framework 4 or above?

Also, has anyone found any news from Microsoft about if the System.Net namespaces and classes will be updated?

Sorry for the basic question formats - I'm new to web development, and just want to make sure I stay on track of new and emerging technologies.

like image 458
Aaron Thomas Avatar asked Feb 19 '15 17:02

Aaron Thomas


People also ask

Does .NET core support HTTP2?

NET Core 3.0, HTTP/2 is enabled by default. For more information on configuration, see the Kestrel HTTP/2 limits and ListenOptions.

Is SPDY still used?

Since 2021, no modern browser supports SPDY. Google announced SPDY in late 2009 and deployed in 2010. SPDY manipulates HTTP traffic, with particular goals of reducing web page load latency and improving web security.

What was SPDY and how did it affect HTTP2?

SPDY uses the general purpose DEFLATE algorithm whereas HTTP/2 uses HPACK that was specifically designed to compress headers. It uses predefined tokens, dynamic tables and Huffman compression. HTTP/2 has significantly smaller header sizes due to its use of the HPACK algorithm.

Should I enable HTTP2?

HTTP/2 is a great leap forward for HTTP. It increases bandwidth efficiency by using a binary compressed format for headers, decreases latency by multiplexing requests on the same TCP connection, and allows the client to specify priorities for requests.


1 Answers

2016-07-21:

HTTP/2 requires Windows 10 or Windows Server 2016 on the server side. Those operating systems ship with IIS 10. So far IIS 10 has not been made available for installation on older operating systems. Given past behavior it is unlikely it ever will become available on downlevel operating systems.

With SSL enabled (which is a requirement of the HTTP/2 protocol), IISExpress on Windows 10 will begin interacting with the browser using the updated protocol.

(https://weblogs.asp.net/scottgu/released-today-visual-studio-2015-asp-net-4-6-asp-net-5-ef-7-previews)

Given that HTTP/2 does not change any of the HTTP semantics I do not expect applications to do anything special to make use of that. It should work with any .NET version and any framework. I have not tried it, though.


February 2015:

For now you need a proxy server in front of IIS. Or a CDN which does HTTP 2. I expect all major ones to very quickly support it given that all browsers already support it.

The Win10 version of IIS will support HTTP 2 according to currently available Microsoft information.

I'm pretty sure the network BCL classes will be updated eventually given how much steam is behind HTTP 2. All clients and servers seem to be willing to support it very quickly.

like image 88
usr Avatar answered Sep 28 '22 02:09

usr