path: root/doc/src/guide/migrating_from_2.3.asciidoc
diff options
Diffstat (limited to 'doc/src/guide/migrating_from_2.3.asciidoc')
1 files changed, 66 insertions, 0 deletions
diff --git a/doc/src/guide/migrating_from_2.3.asciidoc b/doc/src/guide/migrating_from_2.3.asciidoc
new file mode 100644
index 0000000..6a604f9
--- /dev/null
+++ b/doc/src/guide/migrating_from_2.3.asciidoc
@@ -0,0 +1,66 @@
+== 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.