HTTP/2 is everywhere, but proving that an endpoint actually uses it (rather than just advertising it) often requires more than a curl command. forceHttp2Action removes the ambiguity by pinning the ALPN to h2 so you can confirm protocol behaviour, debug gRPC, or surface HTTP/2 specific bugs.
Use forceHttp2Action when you specifically want to exercise the HTTP/2 path of an upstream server. Fluxzy advertises only h2 in the ALPN list, so the server either accepts HTTP/2 or the connection fails.
Typical situations include:
The action runs on the onAuthorityReceived scope and only affects the Fluxzy to remote leg. It is silently ignored on clear traffic because HTTP/2 cleartext (h2c) is not supported.
Keeps the connection on h2 even if a misbehaving client tries to downgrade.
rules:
- filter:
typeKind: HostFilter
pattern: grpc.internal.example.com
actions:
- typeKind: ForceHttp2Action
Useful when one endpoint is migrating to HTTP/2 while the rest of the host stays on 1.1.
rules:
- filter:
typeKind: FilterCollection
operation: And
children:
- typeKind: HostFilter
pattern: api.internal.example.com
- typeKind: PathFilter
pattern: /v2/
actions:
- typeKind: ForceHttp2Action
Lets you reproduce a multiplexing bug deterministically.
rules:
- filter:
typeKind: HostFilter
pattern: payments.example.com
actions:
- typeKind: ForceHttp2Action
Forces the connection between fluxzy and remote to be HTTP/2.0. This value is enforced when setting up ALPN settings during SSL/TLS negotiation.
The exchange will break if the remote does not support HTTP/2.0.
This action will be ignored when the communication is clear (h2c not supported).
Evaluation scope defines the timing where this filter will be applied.
onAuthorityReceived This scope denotes the moment fluxzy is aware the destination authority. In a regular proxy connection, it will occur the moment where fluxzy parsed the CONNECT request.
forceHttp2Action
This action has no specific characteristic
The following examples apply this action to any exchanges
Forces the connection between fluxzy and remote to be HTTP/2.0. This value is enforced when setting up ALPN settings during SSL/TLS negotiation.
The exchange will break if the remote does not support HTTP/2.0.
This action will be ignored when the communication is clear (h2c not supported).
rules:
- filter:
typeKind: AnyFilter
actions:
- typeKind: ForceHttp2Action
View definition of ForceHttp2Action for .NET integration.
The following actions are related to this action:
ALPN fails to negotiate a shared protocol and the TLS handshake closes. The exchange will report a network error you can inspect in Fluxzy.
No. HTTP/2 cleartext (h2c) is not supported, so the action is ignored on clear traffic.
Yes. They control independent aspects of the handshake. A typical pairing is TLS 1.3 plus HTTP/2 to match a modern browser baseline.
Yes. HTTP/2 uses pseudo headers (:method, :path, :scheme, :authority) and the captured request reflects that framing. The semantics stay the same.