APP下载

.NET 5强化多项网络功能,并开始提供HTTP/3实验性支援

发布于2021-01-13 11:50:27

.NET 5在去年的时候正式发布,而直到现在微软才详细地揭露,他们对.NET 5网络堆叠所做的功能强化,获得改善的网络功能范畴,包括HTTP、Sockets、网络相关安全性以及部分网络原语。

在.NET 5中,HTTP开始拥有更好的错误处理能力,微软提到,他们对HTTP领域进行了多项改进和修复,像是其中一个常被要求的功能,是在使用HttpClient的时候,希望能从取消的情况中区分逾时。

微软所做的改进包括让开发者可以使用自定义CancellationToken,来区分逾时和取消,为了向后相容,客户端仍会丢出TaskCanceledException讯息,但是内部的异常情况则是TimeoutException。另一个改进是在HttpRequestException中加入HTTP状态代码(HttpStatusCode),新的状态代码属性可为空值,并在EnsureSuccessStatusCode被呼叫的时候进行设定,可以用在异常过滤器中。

.NET 5的特色之一,便是提供一致的开发体验,而这个想法也在网络相关的实作中贯彻,过去.NET Core中的HTTP堆叠,相依于平台的处理程式(Handlers),像是WinHttpHandler以Windows的WinHTTP为基础,而适用于Linux和Mac的CurlHandler,则是以libcurl为基础,微软提到,由于这两个函式库的差异,因此不可能对每个平台维持一致性。

所以微软开始在.NET Core 2.1中,加入了一个称为SocketsHttpHandler的HTTP实作,并且花费大量心力强化其功能与可靠性,并且从System.Net.Http.dll中,完全删除相依于特定平台的处理程式。在.NET 5中,微软持续强化这样的想法,拿掉让开发者自由切换回旧方法的选项,不过开发者仍然可以透过下载独立的NuGet套件,继续使用WinHttpHandler。

微软提到,因为HttpClient是高阶API,使用起来很方便,但是相对的,也就缺少一些灵活性。考量进阶情境可能需要更灵活地使用方式,微软在.NET 5中,对SocketsHttpHandler加入了两个扩充功能点ConnectCallback和PlaintextStreamFilter,以强化其灵活性。

ConnectCallback让开发者可以创建自定义连接,当每次开启新的TCP连接时,都会呼叫ConnectCallback函式,该回呼函式能够被用来创建程序内传输、控制DNS解析,甚至是控制通用或是特定平台的底层Socket选项。而另一个回呼函式PlaintextStreamFilter,则让开发者可以在新开启的连线上,插入自定义层,应用程序在完全建立连接之后,但在发送任何HTTP之前,会先触发此回呼函式,开发者可以将其用于监听安全连线中,发送的明文资料等应用。

由于HTTP/3和其底层传输层QUIC,还在最后标准化阶段,.NET 5使用开源QUIC协定跨平台实作MsQuic,加入了对HTTP/3的实验性支援,官方仍不建议将其用在正式产品中。QUIC是一种基于UDP的传输标准,比建立在TCP之上的连接,拥有更快的交握速度,还对单一连接中的多请求,提供更稳定的多路复用能力,也能对行动客户端,在多重网络环境中,提供更平顺的切换体验。

而.NET 5也弥补了.NET Core在遥测方面的弱点,过去要监控.NET Core应用程序并不方便,用户只会收到冗长且不一致的日志讯息,而且监听这些讯息,还可能会对效能产生影响。.NET 5以EventSource为基础,设计并且实作了一系列新的遥测事件和计数器,仅占用少量CPU资源,就可让用户良好地监控.NET 5应用程序。

.NET的安全层,仰赖底层操作系统的功能,在以Linux为基础的系统,微软使用OpenSSL来支援TLS 1.3,而在Windows 10,TLS 1.3仅在1903版本后才可用,而且仅提供用作测试目的,因此过去的.NET Core版本,在Windows中并无法使用TLS 1.3,不过这个情况从Windows预览版20170之后情况改变,TLS 1.3预设启用,开发者可以透过新的Schannel API使用TLS 1.3。

相关文章

最新资讯

  • 微软公布SolarWinds骇客的闪避侦测技巧
    2021-01-22 12:50
  • Mozilla揭露Firefox移植Apple Silicon细节,Firefox 85将提供更完整支援
    2021-01-22 12:50
  • 技嘉发布 AORUS Gen4 7000s NVMe 固态硬盘:连…
    2021-01-24 15:51
  • 红帽推出免费与低成本RHEL计划
    2021-01-22 12:50
  • 一图看懂联发科天玑 1200/1100 HyperEngine 3.…
    2021-01-24 14:53

手机

  • 5G SoC进入5nm竞争时代 骁龙888面向高端旗舰产品
    2021-01-22 16:48
  • 高通骁龙888之外的选项:5G芯片骁龙870丰富高端产品序列
    2021-01-22 10:46
  • 顺应互联网大潮流 慕凯龙mocolo成功实现客流量新突破
    2021-01-21 11:46
  • 骁龙888实力充分发挥 iQOO 7加入创新手机玩游戏体验
    2021-01-18 18:47
  • 骁龙888全新制程性能 领跑SoC级赛道
    2021-01-14 16:48

数码

  • 小米手环 6 曝光:将支持血氧测量,出现支付宝…
    2021-01-24 16:54
  • 谷歌定义安卓手机性价比标准,小米等很受伤
    2019-02-28 10:48
  • 摩托罗拉 Edge S 官方预热:骁龙 870 加 Turbo…
    2021-01-24 15:54
  • iQOO携手天猫随心花,分期免息轻松购机
    2021-01-24 14:56
  • 统统旗舰配置,不光首发骁龙870!moto edge s…
    2021-01-24 14:56

科技

  • 震惊:iPhone6S还能再战三年 印度疯狂备货
    2018-04-24 00:32
  • 史上最大只游戏?LABO开箱
    2018-04-24 00:32
  • 20年通讯研发老兵的肺腑之言
    2018-04-24 00:32
  • 两年亏了3000万 他未来要开10万+门店
    2018-04-24 00:32
  • 微软自家的WindowsPhone应用也砍了
    2018-04-24 01:32