How HTTP/S Endpoints Work
HTTP/S endpoints are standards-compliant HTTP reverse proxies.
Supported versions
- HTTP/S endpoints support HTTP/1.1.
- HTTPS endpoints support HTTP/1.1 and HTTP/2.
- HTTP/1.0, HTTP/3 and QUIC are not supported.
HTTP/2 support
HTTP/2 is a newer version of HTTP that offers improved performance by enabling multiple requests and responses over a single connection, among other benefits.
ngrok's HTTPS endpoints automatically use HTTP/2 for all connections if the client supports it. Client support is determined via standard ALPN.
HTTP/2 is used between the client and your endpoint even if your upstream service does not support HTTP/2.
See the HTTP/2 agent forwarding documentation to learn how to use HTTP/2 when sending traffic to an upstream service.
Websocket support
Websocket connections are supported out-of-the-box with no configuration required.
Hop by hop headers
ngrok does not forward any hop-by-hop
headers to upstream services other than Connection: upgrade
, which are forwarded
to support websockets.
For information on headers added automatically by ngrok, see the docs on upstream headers for HTTP/S endpoints.
Persistent connections
When a connection is made to HTTP/S ngrok endpoints with HTTP/1.1, ngrok may choose to use persistent connections, or HTTP keep-alive, to improve the performance of future requests from the same client (if the client supports it).
This behavior is not guaranteed and it is not configurable.
See RFC 7230 for additional details.
Well Known URIs
ngrok handles the /.well-known/acme-challenge
path of any HTTP endpoint matching a
domain with automated certificate management
enabled. You may disable this behavior by uploading your own certificate on the
matching domain.