diff --git a/config/nav.yml b/config/nav.yml index 2b055a656e..f7a61cd180 100644 --- a/config/nav.yml +++ b/config/nav.yml @@ -131,7 +131,7 @@ nav: - Using extensions enabled by QPOptions: serving/services/using-queue-extensions.md # TODO: Add security section to docs? - Configure resource requests and limits: serving/services/configure-requests-limits-services.md - - HTTPS redirection: serving/services/http-protocol.md + - Configuring HTTP: serving/services/http-protocol.md - Volume Support: serving/services/storage.md - Traffic management: serving/traffic-management.md - Configuring gradual rollout of traffic to Revisions: serving/rolling-out-latest-revision.md diff --git a/docs/serving/services/http-protocol.md b/docs/serving/services/http-protocol.md index 87d949f090..d3fa1f14fc 100644 --- a/docs/serving/services/http-protocol.md +++ b/docs/serving/services/http-protocol.md @@ -1,8 +1,10 @@ -# HTTPS redirection +# Configuring HTTP + +## HTTPS redirection Operators can force HTTPS redirection for all Services. See the `http-protocol` mentioned in the [Enabling automatic TLS certificate provisioning](../encryption/enabling-automatic-tls-certificate-provisioning.md) page for more details. -## Overriding the default HTTP behavior +### Overriding the default HTTP behavior You can override the default behavior for each Service or global configuration. @@ -50,3 +52,33 @@ You can override the default behavior for each Service or global configuration. network: http-protocol: "redirected" ``` + +## HTTP/1 Full Duplex support per workload + +Knative services can turn on the support for [HTTP/1 full duplex](https://pkg.go.dev/net/http#ResponseController.EnableFullDuplex) end-to-end on the data path. +This should be used in scenarios where the [related Golang issue](https://github.com/golang/go/issues/40747) is hit eg. the application server writes back to QP's reverse proxy before the latter has consumed the whole request. +For more details on why the issue appears see [here](https://github.com/golang/go/issues/40747#issuecomment-1382404132). + +### Configure HTTP/1 Full Duplex support + +In order to enable the HTTP/1 full duplex support you can set the corresponding annotation at the service level as follows: + +!!! warning + + Test with your http clients before enabling, as older clients may not provide support for HTTP/1 full duplex. + + +```yaml +apiVersion: serving.knative.dev/v1 +kind: Service +metadata: + name: example-service + namespace: default + annotations: + features.knative.dev/http-full-duplex: "Enabled" +spec: + template: + spec: +... +``` +