From 8d6d78575f64055be2d0992d8ccf802d9efa1faa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Sun, 18 Nov 2018 13:21:36 +0100 Subject: Add the chunked option for HTTP/1.1 It allows disabling the chunked transfer-encoding. It can also be disabled on a per-request basis, although it will be ignored for responses that are not streamed. --- doc/src/guide/migrating_from_2.5.asciidoc | 18 +++++++++++------- doc/src/manual/cowboy_http.asciidoc | 10 +++++++++- 2 files changed, 20 insertions(+), 8 deletions(-) (limited to 'doc/src') diff --git a/doc/src/guide/migrating_from_2.5.asciidoc b/doc/src/guide/migrating_from_2.5.asciidoc index 203775d..e3e1b80 100644 --- a/doc/src/guide/migrating_from_2.5.asciidoc +++ b/doc/src/guide/migrating_from_2.5.asciidoc @@ -24,23 +24,26 @@ experimental. data in order to compress them. This is the case for gzip compression. -* Add an `http10_keepalive` option to allow disabling +* Add the `chunked` option to allow disabling chunked + transfer-encoding for HTTP/1.1 connections. + +* Add the `http10_keepalive` option to allow disabling keep-alive for HTTP/1.0 connections. -* Add an `idle_timeout` option for HTTP/2. +* Add the `idle_timeout` option for HTTP/2. -* Add a `sendfile` option to both HTTP/1.1 and HTTP/2. +* Add the `sendfile` option to both HTTP/1.1 and HTTP/2. It allows disabling the sendfile syscall entirely for all connections. It is recommended to disable sendfile when using VirtualBox shared folders. * Add the `rate_limited/2` callback to REST handlers. -* Add a `deflate_opts` option to Websocket handlers that +* Add the `deflate_opts` option to Websocket handlers that allows configuring deflate options for the permessage-deflate extension. -* Add a `charset` option to `cowboy_static`. +* Add the `charset` option to `cowboy_static`. * Add support for the SameSite cookie attribute. @@ -81,8 +84,9 @@ experimental. handlers and Websocket handlers. This can be used to update options on a per-request basis. Allow overriding the `idle_timeout` option for both - HTTP/1.1 and Websocket, and the `cowboy_compress_h` - options for HTTP/1.1 and HTTP/2. + HTTP/1.1 and Websocket, the `cowboy_compress_h` + options for HTTP/1.1 and HTTP/2 and the `chunked` + option for HTTP/1.1. === Bugs fixed diff --git a/doc/src/manual/cowboy_http.asciidoc b/doc/src/manual/cowboy_http.asciidoc index 9ad1b27..3c33ab7 100644 --- a/doc/src/manual/cowboy_http.asciidoc +++ b/doc/src/manual/cowboy_http.asciidoc @@ -17,6 +17,7 @@ as a Ranch protocol. [source,erlang] ---- opts() :: #{ + chunked => boolean(), connection_type => worker | supervisor, env => cowboy_middleware:env(), http10_keepalive => boolean(), @@ -51,6 +52,13 @@ Ranch functions `ranch:get_protocol_options/1` and The default value is given next to the option name: +chunked (true):: + +Whether chunked transfer-encoding is enabled for HTTP/1.1 connections. +Note that a response streamed to the client without the chunked +transfer-encoding and without a content-length header will result +in the connection being closed at the end of the response body. + connection_type (supervisor):: Whether the connection process also acts as a supervisor. @@ -140,7 +148,7 @@ Ordered list of stream handlers that will handle all stream events. == Changelog -* *2.6*: The `http10_keepalive`, `proxy_header` and `sendfile` options were added. +* *2.6*: The `chunked`, `http10_keepalive`, `proxy_header` and `sendfile` options were added. * *2.5*: The `linger_timeout` option was added. * *2.2*: The `max_skip_body_length` option was added. * *2.0*: The `timeout` option was renamed `request_timeout`. -- cgit v1.2.3