Skip to content

HTTP/3: Support aborting one direction of a stream #33575

@JamesNK

Description

@JamesNK

QUIC supports aborting one direction of a stream. For example:

https://quicwg.org/base-drafts/draft-ietf-quic-http.html#section-4.1-15

A server can send a complete response prior to the client sending an entire request if the response does not depend on any portion of the request that has not been sent and received. When the server does not need to receive the remainder of the request, it MAY abort reading the request stream, send a complete response, and cleanly close the sending part of the stream. The error code H3_NO_ERROR SHOULD be used when requesting that the client stop sending on the request stream.

System.Net.Quic is adding QuicStream.Abort(int protocolError, QuicAbortDirection direction);

In our abstractions we have a ConnectionContext.Abort(ConnectionAbortedException abortReason); method.

We could add an abort overload on ConnectionContext. Another option is to specify the direction like we are with the error code, using a feature. Like there is IProtocolErrorCodeFeature, we could add an IProtocolErrorDirectionFeature.

@halter73 @Tratcher @davidfowl

Metadata

Metadata

Assignees

Labels

HTTP3area-networkingIncludes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractions

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions