0
Fork 0
mirror of https://github.com/ninenines/cowboy.git synced 2025-07-14 12:20:24 +00:00

Document trailers in the guide

This commit is contained in:
Loïc Hoguin 2017-12-11 12:43:14 +01:00
parent 6d65cd0d38
commit 364a3527d4
No known key found for this signature in database
GPG key ID: 8A9DF795F6FED764

View file

@ -128,7 +128,35 @@ in advance. This will ensure that the best response method
is selected and help clients understand when the response
is fully received.
// @todo Document trailers here.
Cowboy also provides a function to send response trailers.
Response trailers are semantically equivalent to the headers
you send in the response, only they are sent at the end.
This is especially useful to attach information to the
response that could not be generated until the response
body was fully generated.
Trailer fields must be listed in the trailer header. Any
field not listed might be dropped by the client or an intermediary.
[source,erlang]
----
Req = cowboy_req:stream_reply(200, #{
<<"content-type">> => <<"text/html">>,
<<"trailer">> => <<"expires, content-md5">>
}, Req0),
cowboy_req:stream_body("<html><head>Hello world!</head>", nofin, Req),
cowboy_req:stream_body("<body><p>Hats off!</p></body></html>", nofin, Req),
cowboy_req:stream_trailers(#{
<<"expires">> => <<"Sun, 10 Dec 2017 19:13:47 GMT">>,
<<"content-md5">> => <<"c6081d20ff41a42ce17048ed1c0345e2">>
}, Req).
----
The stream ends with trailers. It is no longer possible to
send data after sending trailers. You cannot send trailers
after setting the `fin` flag when streaming the body.
=== Preset response headers