Document ability to disable request body data rate limits per HTTP/2 stream in Kestrel (#12951)
parent
f5ab8adfa0
commit
c06a34de50
|
@ -321,7 +321,15 @@ You can override the minimum rate limits per request in middleware:
|
|||
|
||||
[!code-csharp[](kestrel/samples/2.x/KestrelSample/Startup.cs?name=snippet_Limits&highlight=6-21)]
|
||||
|
||||
::: moniker range=">= aspnetcore-2.2"
|
||||
::: moniker range=">= aspnetcore-3.0"
|
||||
|
||||
The <xref:Microsoft.AspNetCore.Server.Kestrel.Core.Features.IHttpMinResponseDataRateFeature> referenced in the prior sample is not present in `HttpContext.Features` for HTTP/2 requests because modifying rate limits on a per-request basis is generally not supported for HTTP/2 due to the protocol's support for request multiplexing. However, the <xref:Microsoft.AspNetCore.Server.Kestrel.Core.Features.IHttpMinRequestBodyDataRateFeature> is still present `HttpContext.Features` for HTTP/2 requests, because the read rate limit can still be *disabled entirely* on a per-request basis by setting `IHttpMinRequestBodyDataRateFeature.MinDataRate` to `null` even for an HTTP/2 request. Attempting to read `IHttpMinRequestBodyDataRateFeature.MinDataMinDataRate` or attempting to set it to a value other than `null` will result in a `NotSupportedException` being thrown given an HTTP/2 request.
|
||||
|
||||
Server-wide rate limits configured via `KestrelServerOptions.Limits` still apply to both HTTP/1.x and HTTP/2 connections.
|
||||
|
||||
::: moniker-end
|
||||
|
||||
::: moniker range="= aspnetcore-2.2"
|
||||
|
||||
Neither rate feature referenced in the prior sample are present in `HttpContext.Features` for HTTP/2 requests because modifying rate limits on a per-request basis isn't supported for HTTP/2 due to the protocol's support for request multiplexing. Server-wide rate limits configured via `KestrelServerOptions.Limits` still apply to both HTTP/1.x and HTTP/2 connections.
|
||||
|
||||
|
|
Loading…
Reference in New Issue