Skip to content

Commit

Permalink
Document the use of HTTP/1 full duplex support (#5818)
Browse files Browse the repository at this point in the history
* document the use of http/1 full duplex support

* comments
  • Loading branch information
skonto authored Jan 23, 2024
1 parent f3c2e6b commit f653815
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 3 deletions.
2 changes: 1 addition & 1 deletion config/nav.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
36 changes: 34 additions & 2 deletions docs/serving/services/http-protocol.md
Original file line number Diff line number Diff line change
@@ -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.

Expand Down Expand Up @@ -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:
...
```

0 comments on commit f653815

Please sign in to comment.