question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

RFC: HTTP/2 Support

See original GitHub issue

Description of Problem

IIS 10 (Windows 10 & Windows Server 2016+) supports HTTP/2 out-of-the-box for HTTPS without any changes (e.g. dnnsoftware.com is being served over HTTP/2). Most of its benefits are available without any changes, however there are a few changes to consider.

Server Push

HTTP/2 supports the idea of the web server telling the client early about requests that it promises will be made later. In ASP.NET, this is implemented via the Response.PushPromise method, available starting in .NET 4.6. The API allows the server to specify a path, and if the request is served over HTTP/2 it includes that path in the response, to tell the client to request it (the call is just silently ignored when the site is served over HTTP/1.1 or otherwise not supported).

Proposal

DNN is currently compiled against .NET 4.5, and so cannot take advantage of this API. In DNN 10, the Client Resource Manager should be upgraded to send a server push for each requested URL. More instances of known resources to request should be studied, and this API applied.

Remove/Reduce HTTP/1.1 optimizations

Some optimizations for HTTP/1.1 are no longer recommended when serving a site over HTTP/2. These include domain sharding, inlining resources, and possibly combining requests.

Proposal

A study should be done to determine how client resource combination affects the performance of sites, and whether it should be disabled on HTTP/2. Likewise, instances of inlining content should be replaced with a call to the PushPromise API mentioned above.

Issue Analytics

  • State:closed
  • Created 5 years ago
  • Reactions:6
  • Comments:13 (8 by maintainers)

github_iconTop GitHub Comments

1reaction
sleupoldcommented, Nov 11, 2020

AFAIK this is still an (important) issue and should remain on the to-do list.

0reactions
stale[bot]commented, Nov 11, 2020

This issue has been closed automatically due to inactivity (as mentioned 14 days ago). Feel free to re-open the issue if you believe it is still relevant.

Read more comments on GitHub >

github_iconTop Results From Across the Web

RFC 9113 - HTTP/2
This specification describes an optimized expression of the semantics of the Hypertext Transfer Protocol (HTTP), referred to as HTTP version 2 (HTTP/2).
Read more >
RFC 7540 - Hypertext Transfer Protocol Version 2 (HTTP/2)
HTTP/2 supports all of the core features of HTTP/1.1 but aims to be more efficient in several ways. The basic protocol unit in...
Read more >
HTTP/2
HTTP/2 is the first new version of HTTP since HTTP/1.1, which was standardized in RFC 2068 in 1997. The Working Group presented HTTP/2...
Read more >
HTTP/2
HTTP/2 is a replacement for how HTTP is expressed “on the wire.” It is not a ground-up rewrite of the protocol; HTTP methods,...
Read more >
RFC 7540 (Obsoleted: May 2015 - Jun 2022, 96 pages)
HTTP/2 provides an optimized transport for HTTP semantics. HTTP/2 supports all of the core features of HTTP/1.1 but aims to be more efficient...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found