mirror of
https://github.com/ninenines/cowboy.git
synced 2025-07-14 12:20:24 +00:00
Update Cowboy to 2.4.0
This commit is contained in:
parent
42439b93db
commit
5d5f3f8461
5 changed files with 71 additions and 3 deletions
2
Makefile
2
Makefile
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
PROJECT = cowboy
|
PROJECT = cowboy
|
||||||
PROJECT_DESCRIPTION = Small, fast, modern HTTP server.
|
PROJECT_DESCRIPTION = Small, fast, modern HTTP server.
|
||||||
PROJECT_VERSION = 2.3.0
|
PROJECT_VERSION = 2.4.0
|
||||||
PROJECT_REGISTERED = cowboy_clock
|
PROJECT_REGISTERED = cowboy_clock
|
||||||
|
|
||||||
# Options.
|
# Options.
|
||||||
|
|
|
@ -73,6 +73,8 @@ include::middlewares.asciidoc[Middlewares]
|
||||||
|
|
||||||
= Additional information
|
= Additional information
|
||||||
|
|
||||||
|
include::migrating_from_2.3.asciidoc[Migrating from Cowboy 2.3 to 2.4]
|
||||||
|
|
||||||
include::migrating_from_2.2.asciidoc[Migrating from Cowboy 2.2 to 2.3]
|
include::migrating_from_2.2.asciidoc[Migrating from Cowboy 2.2 to 2.3]
|
||||||
|
|
||||||
include::migrating_from_2.1.asciidoc[Migrating from Cowboy 2.1 to 2.2]
|
include::migrating_from_2.1.asciidoc[Migrating from Cowboy 2.1 to 2.2]
|
||||||
|
|
|
@ -69,7 +69,7 @@ fetch and compile Cowboy:
|
||||||
PROJECT = hello_erlang
|
PROJECT = hello_erlang
|
||||||
|
|
||||||
DEPS = cowboy
|
DEPS = cowboy
|
||||||
dep_cowboy_commit = 2.3.0
|
dep_cowboy_commit = 2.4.0
|
||||||
|
|
||||||
DEP_PLUGINS = cowboy
|
DEP_PLUGINS = cowboy
|
||||||
|
|
||||||
|
|
66
doc/src/guide/migrating_from_2.3.asciidoc
Normal file
66
doc/src/guide/migrating_from_2.3.asciidoc
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
[appendix]
|
||||||
|
== Migrating from Cowboy 2.3 to 2.4
|
||||||
|
|
||||||
|
Cowboy 2.4 focused on improving the HTTP/2 implementation.
|
||||||
|
All existing tests from RFC7540 and the h2spec test suite
|
||||||
|
now all pass. Numerous options have been added to control
|
||||||
|
SETTINGS and related behavior. In addition experimental
|
||||||
|
support for Websocket over HTTP/2 was added.
|
||||||
|
|
||||||
|
=== Features added
|
||||||
|
|
||||||
|
* Add experimental support for Websocket over HTTP/2.
|
||||||
|
You can use the `enable_connect_protocol` option to
|
||||||
|
enable. It implements the following draft:
|
||||||
|
https://tools.ietf.org/html/draft-ietf-httpbis-h2-websockets-01
|
||||||
|
|
||||||
|
* Add options `max_decode_table_size` and
|
||||||
|
`max_encode_table_size` to restrict the size of the
|
||||||
|
HPACK compression dictionary.
|
||||||
|
|
||||||
|
* Add option `max_concurrent_streams` to restrict the
|
||||||
|
number of HTTP/2 streams that can be opened concurrently.
|
||||||
|
|
||||||
|
* Add options `initial_connection_window_size` and
|
||||||
|
`initial_stream_window_size` to restrict the size of
|
||||||
|
the HTTP/2 request body buffers for the whole connection
|
||||||
|
and per stream, respectively.
|
||||||
|
|
||||||
|
* Add options `max_frame_size_received` and
|
||||||
|
`max_frame_size_sent` to restrict the size of
|
||||||
|
HTTP/2 frames.
|
||||||
|
|
||||||
|
* Add option `settings_timeout` to reject clients that
|
||||||
|
did not send a SETTINGS ack. Note that this currently
|
||||||
|
may only occur at the beginning of the connection.
|
||||||
|
|
||||||
|
* Update Ranch to 1.5.0
|
||||||
|
|
||||||
|
* Update Cowlib to 2.3.0
|
||||||
|
|
||||||
|
=== Bugs fixed
|
||||||
|
|
||||||
|
* Fix the END_STREAM flag for informational responses
|
||||||
|
when using HTTP/2.
|
||||||
|
|
||||||
|
* Receive and ignore HTTP/2 request trailers if any
|
||||||
|
for HTTP/2 requests. Request trailer information will
|
||||||
|
be propagated to the user code in a future release.
|
||||||
|
|
||||||
|
* Reject WINDOW_UPDATE frames that are sent after the
|
||||||
|
client sent an RST_STREAM. Note that Cowboy will not
|
||||||
|
keep state information about terminated streams
|
||||||
|
forever and so the behavior might differ depending
|
||||||
|
on when the stream was reset.
|
||||||
|
|
||||||
|
* Reject streams that depend on themselves. Note that
|
||||||
|
Cowboy currently does not implement HTTP/2's priority
|
||||||
|
mechanisms so this issue was harmless.
|
||||||
|
|
||||||
|
* Reject HTTP/2 requests where the body size is different
|
||||||
|
than the content-length value. Note that due to how Cowboy
|
||||||
|
works some requests might go through regardless, for
|
||||||
|
example when the user code does not read the request body.
|
||||||
|
|
||||||
|
* Fix all existing test failures from RFC7540. This was
|
||||||
|
mostly incorrect test cases or intermittent failures.
|
|
@ -1,6 +1,6 @@
|
||||||
{application, 'cowboy', [
|
{application, 'cowboy', [
|
||||||
{description, "Small, fast, modern HTTP server."},
|
{description, "Small, fast, modern HTTP server."},
|
||||||
{vsn, "2.3.0"},
|
{vsn, "2.4.0"},
|
||||||
{modules, ['cowboy','cowboy_app','cowboy_bstr','cowboy_children','cowboy_clear','cowboy_clock','cowboy_compress_h','cowboy_constraints','cowboy_handler','cowboy_http','cowboy_http2','cowboy_iolists','cowboy_loop','cowboy_metrics_h','cowboy_middleware','cowboy_req','cowboy_rest','cowboy_router','cowboy_static','cowboy_stream','cowboy_stream_h','cowboy_sub_protocol','cowboy_sup','cowboy_tls','cowboy_tracer_h','cowboy_websocket']},
|
{modules, ['cowboy','cowboy_app','cowboy_bstr','cowboy_children','cowboy_clear','cowboy_clock','cowboy_compress_h','cowboy_constraints','cowboy_handler','cowboy_http','cowboy_http2','cowboy_iolists','cowboy_loop','cowboy_metrics_h','cowboy_middleware','cowboy_req','cowboy_rest','cowboy_router','cowboy_static','cowboy_stream','cowboy_stream_h','cowboy_sub_protocol','cowboy_sup','cowboy_tls','cowboy_tracer_h','cowboy_websocket']},
|
||||||
{registered, [cowboy_sup,cowboy_clock]},
|
{registered, [cowboy_sup,cowboy_clock]},
|
||||||
{applications, [kernel,stdlib,crypto,cowlib,ranch]},
|
{applications, [kernel,stdlib,crypto,cowlib,ranch]},
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue