cowboy_http2 - HTTP/2


The module cowboy_http2 implements HTTP/2 as a Ranch protocol.


opts() :: #{
    connection_type    => worker | supervisor,
    env                => cowboy_middleware:env(),
    inactivity_timeout => timeout(),
    middlewares        => [module()],
    preface_timeout    => timeout(),
    shutdown_timeout   => timeout(),
    stream_handlers    => [module()]

Configuration for the HTTP/2 protocol.

This configuration is passed to Cowboy when starting listeners using cowboy:start_clear/3 or cowboy:start_tls/3 functions.

It can be updated without restarting listeners using the Ranch functions ranch:get_protocol_options/1 and ranch:set_protocol_options/2.

The default value is given next to the option name:

connection_type (supervisor)

Whether the connection process also acts as a supervisor.

env (#{})

Middleware environment.

inactivity_timeout (300000)

Time in ms with nothing received at all before Cowboy closes the connection.

middlewares ([cowboy_router, cowboy_handler])

Middlewares to run for every request.

preface_timeout (5000)

Time in ms Cowboy is willing to wait for the connection preface.

shutdown_timeout (5000)

Time in ms Cowboy will wait for child processes to shut down before killing them.

stream_handlers ([cowboy_stream_h])

Ordered list of stream handlers that will handle all stream events.


  • 2.0: Protocol introduced.

See also

cowboy(7), cowboy_http(3), cowboy_websocket(3)

Cowboy 2.2 Function Reference


Version select

Like my work? Donate!

Donate to Loïc Hoguin because his work on Cowboy, Ranch, Gun and is fantastic:

Recurring payment options are also available via GitHub Sponsors. These funds are used to cover the recurring expenses like food, dedicated servers or domain names.