自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

.NET 6 中的 HTTP/3 支持

開(kāi)發(fā) 后端
.NET 開(kāi)發(fā)團(tuán)隊(duì)表示,HTTP/3 的 RFC 還沒(méi)有最終確定,但他們還是將 HTTP/3 引入到了 .NET 6 中,方便用戶(hù)開(kāi)始進(jìn)行試驗(yàn),但這只是 .NET 6 的預(yù)覽功能——因?yàn)樗环?.NET 6 其余部分的質(zhì)量標(biāo)準(zhǔn)。因此需要與其他服務(wù)器和客戶(hù)端進(jìn)行更廣泛的測(cè)試以確保兼容性,尤其是在邊界情況下。

根據(jù)官方博客的介紹,.NET 6 提供了對(duì) HTTP/3 的預(yù)覽支持,主要包括以下場(chǎng)景:

  • 在 Kestrel、HTTP.Sys 和 IIS 中,用于 ASP.NET 服務(wù)器
  • 在 HttpClient 中發(fā)送 outbound 請(qǐng)求
  • 面向 gRPC

.NET 開(kāi)發(fā)團(tuán)隊(duì)表示,HTTP/3 的 RFC 還沒(méi)有最終確定,但他們還是將 HTTP/3 引入到了 .NET 6 中,方便用戶(hù)開(kāi)始進(jìn)行試驗(yàn),但這只是 .NET 6 的預(yù)覽功能——因?yàn)樗环?.NET 6 其余部分的質(zhì)量標(biāo)準(zhǔn)。因此需要與其他服務(wù)器和客戶(hù)端進(jìn)行更廣泛的測(cè)試以確保兼容性,尤其是在邊界情況下。

[[425255]]

試用 HTTP/3

如需使用 HTTP/3,需安裝 MSQuic 及其 TLS 依賴(lài)項(xiàng)。

目前只支持 Windows 和 Linux,.NET 6 暫不支持 macOS 上的 HTTP/3,主要是因?yàn)槿鄙倥c QUIC 兼容的 TLS API。.NET 團(tuán)隊(duì)認(rèn)為,由于 .NET 在 macOS 上使用 SecureTransport 來(lái)實(shí)現(xiàn)其 TLS 實(shí)現(xiàn),它尚未包含支持 QUIC 握手的 TLS API。雖然可以使用 OpenSSL,但他們認(rèn)為最好不要引入未與操作系統(tǒng)的證書(shū)管理集成的附加依賴(lài)項(xiàng)。

示例

使用 HTTP/3 的 gRPC

gRPC 是一種使用 protobuf 序列化格式的 RPC 機(jī)制。gRPC 通常使用 HTTP/2 作為其傳輸。HTTP/3 使用了相同的語(yǔ)義,因此幾乎不需要更改即可使其工作。gRPC over HTTP/3 由 .NET 團(tuán)隊(duì)提出,目前還不是一個(gè)標(biāo)準(zhǔn)。

ASP.NET Server 

  1. var builder = WebApplication.CreateBuilder(args); 
  2.  
  3. // Add services to the container. 
  4. builder.Services.AddGrpc(); 
  5. builder.WebHost.ConfigureKestrel((context, options) => 
  6.   options.Listen(IPAddress.Any, 5001, listenOptions => 
  7.   { 
  8.     listenOptions.Protocols = HttpProtocols.Http3; 
  9.     listenOptions.UseHttps(); 
  10.   }); 
  11. }); 
  12. var app = builder.Build(); 
  13.  
  14. // Configure the HTTP request pipeline. 
  15. if (app.Environment.IsDevelopment()) 
  16. app.UseDeveloperExceptionPage(); 
  17.  
  18. app.MapGrpcService<GreeterService>(); 
  19. app.MapGet("/", () => "Communication with gRPC endpoints must be made through a gRPC client. To learn how to create a client, visit: https://go.microsoft.com/fwlink/?linkid=2086909"); 
  20.  
  21. app.Run(); 

Client 

  1. using Grpc.Net.Client; 
  2. using GrpcService1; 
  3. using System.Net; 
  4.  
  5. var httpClient = new HttpClient(); 
  6. httpClient.DefaultRequestVersion = HttpVersion.Version30; 
  7. httpClient.DefaultVersionPolicy = HttpVersionPolicy.RequestVersionExact; 
  8.  
  9. var channel = GrpcChannel.ForAddress("https://localhost:5001", new GrpcChannelOptions() { HttpClient = httpClient }); 
  10. var client = new Greeter.GreeterClient(channel); 
  11.  
  12. var response = await client.SayHelloAsync( 
  13. new HelloRequest { Name = "World" }); 
  14.  
  15. Console.WriteLine(response.Message); 

詳情查看官方博客

本站新聞禁止未經(jīng)授權(quán)轉(zhuǎn)載,違者依法追究相關(guān)法律責(zé)任。授權(quán)請(qǐng)聯(lián)系:oscbianji#oschina.cn

本文標(biāo)題:.NET 6 中的 HTTP/3 支持

本文地址:https://www.oschina.net/news/161364/http-3-support-in-dotnet-6

 

責(zé)任編輯:未麗燕 來(lái)源: 開(kāi)源中國(guó)
相關(guān)推薦

2023-01-27 23:11:25

GolangNetHttp

2009-07-23 16:20:48

HTTP協(xié)議ASP.NET

2009-07-28 15:29:03

實(shí)現(xiàn)HTTP請(qǐng)求ASP.NET

2024-03-25 03:00:00

.NET 6await編程

2021-09-08 05:00:38

.NET

2020-12-04 09:30:18

HTTPWeb前端

2021-04-19 10:05:37

MozillaHTTPWeb服務(wù)器

2022-06-21 10:10:14

HTTP協(xié)議TCP

2024-07-02 08:45:08

2022-07-13 14:12:41

HTTP/3前端

2021-01-21 10:21:11

NginxHTTP 3.0Linux

2011-04-14 09:19:22

ASP.NET MVC

2010-10-20 09:05:16

ASP.NET MVC

2010-12-07 09:38:15

ASP.NET MVC

2019-11-17 22:47:53

HTTP23

2011-07-08 09:35:36

IPv6操作系統(tǒng)路由器

2020-08-26 07:50:01

HTTP 3網(wǎng)絡(luò)協(xié)議HTTP

2020-03-08 21:22:03

HTTP112

2017-08-31 15:20:03

PythonPython3HTTP

2019-10-12 08:40:43

HTTP 3UDB協(xié)議服務(wù)器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)