::: cowboy_http_handler The `cowboy_http_handler` behaviour defines the interface used by plain HTTP handlers. Unless noted otherwise, the callbacks will be executed sequentially. :: Types None. :: Callbacks : init({TransportName, ProtocolName}, Req, Opts) -> {ok, Req, State} | {shutdown, Req, State} Types: * TransportName = tcp | ssl | atom() * ProtocolName = http | atom() * Req = cowboy_req:req() * Opts = any() * State = any() Initialize the state for this request. The `shutdown` return value can be used to skip the `handle/2` call entirely. : handle(Req, State) -> {ok, Req, State} Types: * Req = cowboy_req:req() * State = any() Handle the request. This callback is where the request is handled and a response should be sent. If a response is not sent, Cowboy will send a `204 No Content` response automatically. : terminate(Reason, Req, State) -> ok Types: * Reason = {normal, shutdown} | {error, atom()} * Req = cowboy_req:req() * State = any() Perform any necessary cleanup of the state. This callback should release any resource currently in use, clear any active timer and reset the process to its original state, as it might be reused for future requests sent on the same connection. Typical plain HTTP handlers rarely need to use it.