asp.net core 6 新特性,支持HTTP/3 端点发布
???? 序言
Http3 協議構建在UDP的基礎上,是的,就這么神奇,以前被譽為不穩定大神的UDP,現在承擔起可靠通訊協議的底層協議。為了消除UDP的不確定性,在UDP協議之上,新增了QUIC協議。
使用QUIC協議代替TCP協議中關于可靠、流量控制的部分,因此使得HTTP3可以可靠的進行通訊傳輸。
在.net 6預覽版的asp.net core 上,微軟添加了對 HTTP/3 的支持,這為 Web 帶來了很多改進。HTTP3 帶來了更快的連接設置以及在低質量網絡上的改進性能。
從中我們也能看出微軟對.net 6給予的厚望。
Microsoft 現在添加了對 HTTP/3 的支持以及為 HTTP/3 配置 TLS (https) 的支持。
???? 1. HTTP/3 ?TLS 配置
讓我們看看如何使用以下命令在小型 MVC 應用程序中配置 HTTP/3:
dotnet new mvc -o Http3Tls -n Http3Tls cd Http3Tls code?.?此命令創建一個 MVC 應用程序,切換到項目文件夾并打開 VSCode。我們需要在Program.cs中配置 HTTP/3,就如下面代碼所示:
public class Program {public static void Main(string[] args){CreateHostBuilder(args).Build().Run();}public static IHostBuilder CreateHostBuilder(string[] args) =>Host.CreateDefaultBuilder(args).ConfigureWebHostDefaults(webBuilder =>{webBuilder.ConfigureKestrel((context, options) =>{options.EnableAltSvc = true;options.Listen(IPAddress.Any, 5001, listenOptions =>{// Enables HTTP/3listenOptions.Protocols = HttpProtocols.Http3;// Adds a TLS certificate to the endpointlistenOptions.UseHttps(httpsOptions =>{httpsOptions.ServerCertificate = LoadCertificate();});});}).UseStartup<Startup>();}); }這里標志EnableAltSvc為瀏覽器設置了一個 Alt-Svc 標頭。
以告訴這是現有 HTTP/1 或 HTTP/2 的替代服務。這需要告訴瀏覽器,替代服務 - 在這種情況下是 HTTP/3 - 應該像現有服務一樣對待。
這需要一個 https 連接來保證安全和可信。
使用listenOptions.UseHttps配置ssl的證書。
使用 listenOptions.Protocols = HttpProtocols.Http3; 激活Http3 服務。
是的,就這么簡單,一個適應http3協議的服務已經搭建完成。
???? 2 http/3 優勢小結
由于Http/3協議,基于 UDP, 其避免了 TCP、Http/1、HTTP/2 的經典問題,實現了一個安全高效可靠的 HTTP 通信協議。
憑借著 0 RTT 建立連接、平滑的連接遷移、基本消除了隊頭阻塞,并增強了流量控制等特性, 在絕大多數場景下獲得了比 HTTP/2 更好的效果。
因此 Http /3 必將是 http協議的未來。
相關鏈接:
關于.Net 6 中 Quic
總結
以上是生活随笔為你收集整理的asp.net core 6 新特性,支持HTTP/3 端点发布的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用C#为.NET Interactiv
- 下一篇: 国内最大.NET平台重金招募中 你竟然还