Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Outbound http connections to destinations are configurable #282

Closed
samsp-msft opened this issue Jul 1, 2020 · 3 comments · Fixed by #512
Closed

Outbound http connections to destinations are configurable #282

samsp-msft opened this issue Jul 1, 2020 · 3 comments · Fixed by #512
Assignees
Labels
.NET runtime schedule Partner Blocking: Collab Services Priority:0 Used for divisional .NET planning Type: Tracking Tracking work to be done in other repositories. User Story Used for divisional .NET planning

Comments

@samsp-msft
Copy link
Contributor

samsp-msft commented Jul 1, 2020

dotnet/runtime#987

@samsp-msft samsp-msft created this issue from a note in YARP Planning (1.0 Backlog) Jul 1, 2020
@samsp-msft samsp-msft added .NET runtime schedule Type: Tracking Tracking work to be done in other repositories. labels Jul 1, 2020
@samsp-msft
Copy link
Contributor Author

Runtime feature: Enables control of the version to prevent connections from being downgraded.

@Tratcher
Copy link
Member

Tratcher commented Oct 8, 2020

A partner requires this for use with IHttpProxy because they prefer HTTP/1.1 for their scenarios. We currently default to HTTP/2.

Proposal:
RequestProxyOptions is used with IHttpProxy and could also be exposed as per-cluster configuration.

internal class RequestProxyOptions
{
public Transforms Transforms { get; set; } = Transforms.Empty;
/// <summary>
/// The time allowed to send the request and receive the response headers. This may include
/// the time needed to send the request body.
/// </summary>
public TimeSpan RequestTimeout { get; set; } = TimeSpan.FromSeconds(100);
// Future:
// ResponseBodyTimeout - The time allowed to receive the full response body. Default to infinite. Not applied to Upgraded requests or gRPC streams.
// HttpVersion - Default to HTTP/2?
// HttpVersionPolicy - Default to OrLower?

This would also address #319 (configurable timeouts).

Make the http version and version policy (5.0 only) available on the options and then use them when constructing requests in HttpProxy.

Should the version property be nullable to allow you to preserve the incoming request version?

@Tratcher
Copy link
Member

The version policy should also be added to the RequestParametersTransformContext so it can be customized by transforms.

@samsp-msft samsp-msft changed the title Control over outbound http versions Outbound http connections to destinations are configurable Oct 21, 2020
@samsp-msft samsp-msft added the User Story Used for divisional .NET planning label Oct 21, 2020
@Tratcher Tratcher moved this from 1.0 Backlog to 1.0.0-preview7 in YARP Planning Nov 10, 2020
@samsp-msft samsp-msft added the Priority:0 Used for divisional .NET planning label Jan 20, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
.NET runtime schedule Partner Blocking: Collab Services Priority:0 Used for divisional .NET planning Type: Tracking Tracking work to be done in other repositories. User Story Used for divisional .NET planning
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants