内容提要
.NET 11 的 ASP.NET Core 重点优化 HTTP/2/3 与网络性能:Kestrel 处理 HTTP/3 新连接时不再等待控制流和 SETTINGS 帧,降低首个请求延迟;HTTP/1.1 解析器改为不抛异常,畸形请求下吞吐提升 20–40%;新增并默认启用 Zstandard 压缩。此外还引入 runtime-async、安全诊断改进及 MCP、Blazor AI 组件等特性。
延伸解读
HTTP/3 首请求延迟优化的实际意义
Kestrel 不再等待控制流和 SETTINGS 帧就绪,直接处理 HTTP/3 请求,减少了新连接上第一个请求的等待时间。对于移动端、网络环境复杂、连接频繁新建销毁的场景,这一优化能带来实打实的体验提升。
HTTP/1.1 解析器健壮性改进的适用场景
解析器改为返回结果结构体而非抛异常,在大量畸形请求下吞吐量提升 20–40%,且对正常请求零影响。这适合面临端口扫描、恶意流量或配置错误客户端的服务,能提升抗压能力。
Zstandard 压缩默认启用的收益与配置
响应压缩和请求解压缩中间件新增 Zstandard 支持并默认启用,zstd 在压缩率和速度上优于 gzip,对高流量 API 是带宽红利。可通过 ZstandardCompressionOptions 调整 Quality(1-22),越高压缩越好但越慢。
runtime-async 与安全诊断的升级价值
共享框架库在 net11.0+ 启用 runtime-async,由运行时生成 async/await 状态机,减少每次 await 的内存分配,应用无需改代码即自动受益。同时新增 TLS 握手异常诊断、通道绑定字节获取等安全能力,便于排查问题。
Q&A
.NET 11 的 ASP.NET Core 在 HTTP/3 方面做了哪些优化?
Kestrel 处理 HTTP/3 新连接时不再等待控制流和 SETTINGS 帧就绪,直接开始处理请求,从而显著降低新连接上第一个请求的延迟。
Kestrel 的 HTTP/1.1 解析器在 .NET 11 中有什么变化?
HTTP/1.1 请求解析器改为不抛异常的代码路径,解析器返回结果结构体(成功/不完整/错误),而不是每次失败都抛 BadHttpRequestException。在面对大量畸形请求时,吞吐量提升 20–40%,且对正常请求处理零影响。
.NET 11 中响应压缩和请求解压缩中间件新增了什么支持?
新增 Zstandard 支持,且默认启用。zstd 在压缩率和速度上全面优于 gzip,对高流量 API 是免费的带宽红利。
runtime-async 在 .NET 11 中有什么作用?
ASP.NET Core 共享框架库在 net11.0+ 上启用 runtime-async 编译,由运行时而非编译器生成 async/await 状态机,减少每次 await 的内存分配。纯内部实现变更,应用无需改代码即自动受益。
.NET 11 的 ASP.NET Core 在网络栈安全与诊断方面有哪些改进?
网络栈新增了 ITlsHandshakeFeature.Exception、IOException、UseTlsClientHelloListener、ITlsConnectionFeature.TryGetChannelBindingBytes、HttpAuthenticationHardeningLevel 等安全与诊断能力。
.NET 11 的 ASP.NET Core 更新主要围绕哪两条主线?
两条主线:一是围绕 HTTP/2/3 和底层网络性能的改进;二是 AI 应用相关特性,如 MCP 和 Blazor AI 组件。