From 8459bebceb9533948193774371cbd9fd571b78ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Wed, 16 Oct 2019 09:48:31 +0200 Subject: Cowboy 2.7.0 --- _build/content/articles/cowboy-2.7.0.asciidoc | 50 + _build/data/projects/cowboy.toml | 4 +- _build/data/projects/cowlib.toml | 2 +- articles/asciideck/index.html | 6 +- articles/cowboy-2.0.0-pre.4/index.html | 4 + articles/cowboy-2.0.0-rc.1/index.html | 4 + articles/cowboy-2.0.0-rc.2/index.html | 4 + articles/cowboy-2.0.0/index.html | 4 + articles/cowboy-2.1.0/index.html | 4 + articles/cowboy-2.2.0/index.html | 4 + articles/cowboy-2.3.0/index.html | 4 + articles/cowboy-2.4.0/index.html | 4 + articles/cowboy-2.5.0/index.html | 4 + articles/cowboy-2.6.0/index.html | 4 + articles/cowboy-2.7.0/index.html | 307 ++ articles/cowboy2-qs/index.html | 6 +- articles/dont-let-it-crash/index.html | 4 + .../erlang-meetup-10-septembre-2019/index.html | 4 + articles/erlang-scalability/index.html | 4 + articles/erlang-validate-utf8/index.html | 18 +- articles/erlang.mk-and-relx/index.html | 34 +- .../index.html | 4 + articles/erlanger-playbook/index.html | 4 + articles/farwest-funded/index.html | 4 + articles/gun-1.0.0-rc.1/index.html | 4 + articles/gun-1.0.0/index.html | 4 + articles/gun-1.2.0/index.html | 4 + articles/gun-1.3.0/index.html | 4 + articles/gun-2.0.0-pre.1/index.html | 4 + articles/index.html | 36 +- articles/index.xml | 12 +- articles/january-2014-status/index.html | 4 + articles/joe_the_rubber_duck/index.html | 4 + articles/merry-christmas-2018/index.html | 4 + articles/ml-archives/index.html | 4 + articles/on-open-source/index.html | 4 + articles/page/2/index.html | 37 +- articles/page/3/index.html | 18 + articles/ranch-1.3/index.html | 8 +- articles/ranch-1.6.0/index.html | 4 + articles/ranch-1.7.0/index.html | 4 + articles/ranch-2.0.0-rc.1/index.html | 4 + articles/ranch-ftp/index.html | 26 +- articles/the-elephant-in-the-room/index.html | 4 + articles/the-story-so-far/index.html | 4 + articles/tictactoe/index.html | 10 +- articles/website-update/index.html | 4 + articles/xerl-0.1-empty-modules/index.html | 16 +- articles/xerl-0.2-two-modules/index.html | 14 +- articles/xerl-0.3-atomic-expressions/index.html | 22 +- articles/xerl-0.4-expression-separator/index.html | 12 +- articles/xerl-0.5-intermediate-module/index.html | 14 +- docs/en/cowboy/2.2/guide/constraints/index.html | 12 +- docs/en/cowboy/2.2/guide/cookies/index.html | 22 +- docs/en/cowboy/2.2/guide/erlang_web/index.html | 2 + docs/en/cowboy/2.2/guide/flow_diagram/index.html | 2 + .../en/cowboy/2.2/guide/getting_started/index.html | 18 +- docs/en/cowboy/2.2/guide/handlers/index.html | 10 +- docs/en/cowboy/2.2/guide/index.html | 2 + docs/en/cowboy/2.2/guide/introduction/index.html | 2 + docs/en/cowboy/2.2/guide/listeners/index.html | 6 +- docs/en/cowboy/2.2/guide/loop_handlers/index.html | 10 +- docs/en/cowboy/2.2/guide/middlewares/index.html | 2 + .../cowboy/2.2/guide/migrating_from_1.0/index.html | 2 + .../cowboy/2.2/guide/migrating_from_2.0/index.html | 2 + .../cowboy/2.2/guide/migrating_from_2.1/index.html | 2 + .../cowboy/2.2/guide/migrating_from_2.2/index.html | 2 + docs/en/cowboy/2.2/guide/modern_web/index.html | 2 + docs/en/cowboy/2.2/guide/multipart/index.html | 14 +- docs/en/cowboy/2.2/guide/req/index.html | 60 +- docs/en/cowboy/2.2/guide/req_body/index.html | 18 +- .../en/cowboy/2.2/guide/resource_design/index.html | 2 + docs/en/cowboy/2.2/guide/resp/index.html | 38 +- .../en/cowboy/2.2/guide/rest_flowcharts/index.html | 2 + docs/en/cowboy/2.2/guide/rest_handlers/index.html | 4 +- .../en/cowboy/2.2/guide/rest_principles/index.html | 2 + docs/en/cowboy/2.2/guide/routing/index.html | 40 +- docs/en/cowboy/2.2/guide/specs/index.html | 2 + docs/en/cowboy/2.2/guide/static_files/index.html | 22 +- docs/en/cowboy/2.2/guide/streams/index.html | 2 + docs/en/cowboy/2.2/guide/ws_handlers/index.html | 26 +- docs/en/cowboy/2.2/guide/ws_protocol/index.html | 2 + .../en/cowboy/2.2/manual/cowboy.set_env/index.html | 6 +- .../2.2/manual/cowboy.start_clear/index.html | 8 +- .../cowboy/2.2/manual/cowboy.start_tls/index.html | 8 +- .../2.2/manual/cowboy.stop_listener/index.html | 6 +- docs/en/cowboy/2.2/manual/cowboy/index.html | 12 +- docs/en/cowboy/2.2/manual/cowboy_app/index.html | 4 +- .../2.2/manual/cowboy_constraints.int/index.html | 8 +- .../manual/cowboy_constraints.nonempty/index.html | 8 +- .../2.2/manual/cowboy_constraints/index.html | 6 +- .../2.2/manual/cowboy_handler.terminate/index.html | 6 +- .../en/cowboy/2.2/manual/cowboy_handler/index.html | 4 +- docs/en/cowboy/2.2/manual/cowboy_http/index.html | 4 +- docs/en/cowboy/2.2/manual/cowboy_http2/index.html | 4 +- docs/en/cowboy/2.2/manual/cowboy_loop/index.html | 4 +- .../cowboy/2.2/manual/cowboy_middleware/index.html | 6 +- .../2.2/manual/cowboy_req.binding/index.html | 8 +- .../2.2/manual/cowboy_req.bindings/index.html | 6 +- .../2.2/manual/cowboy_req.body_length/index.html | 6 +- .../cowboy/2.2/manual/cowboy_req.cert/index.html | 10 +- .../cowboy_req.delete_resp_header/index.html | 6 +- .../2.2/manual/cowboy_req.has_body/index.html | 6 +- .../2.2/manual/cowboy_req.has_resp_body/index.html | 6 +- .../manual/cowboy_req.has_resp_header/index.html | 6 +- .../cowboy/2.2/manual/cowboy_req.header/index.html | 10 +- .../2.2/manual/cowboy_req.headers/index.html | 8 +- .../cowboy/2.2/manual/cowboy_req.host/index.html | 8 +- .../2.2/manual/cowboy_req.host_info/index.html | 6 +- .../cowboy/2.2/manual/cowboy_req.inform/index.html | 8 +- .../2.2/manual/cowboy_req.match_cookies/index.html | 10 +- .../2.2/manual/cowboy_req.match_qs/index.html | 10 +- .../cowboy/2.2/manual/cowboy_req.method/index.html | 10 +- .../2.2/manual/cowboy_req.parse_cookies/index.html | 6 +- .../2.2/manual/cowboy_req.parse_header/index.html | 36 +- .../2.2/manual/cowboy_req.parse_qs/index.html | 6 +- .../cowboy/2.2/manual/cowboy_req.path/index.html | 8 +- .../2.2/manual/cowboy_req.path_info/index.html | 6 +- .../cowboy/2.2/manual/cowboy_req.peer/index.html | 8 +- .../cowboy/2.2/manual/cowboy_req.port/index.html | 8 +- .../cowboy/2.2/manual/cowboy_req.push/index.html | 8 +- docs/en/cowboy/2.2/manual/cowboy_req.qs/index.html | 8 +- .../2.2/manual/cowboy_req.read_body/index.html | 8 +- .../2.2/manual/cowboy_req.read_part/index.html | 10 +- .../manual/cowboy_req.read_part_body/index.html | 8 +- .../cowboy_req.read_urlencoded_body/index.html | 8 +- .../cowboy/2.2/manual/cowboy_req.reply/index.html | 10 +- .../2.2/manual/cowboy_req.resp_header/index.html | 8 +- .../2.2/manual/cowboy_req.resp_headers/index.html | 6 +- .../cowboy/2.2/manual/cowboy_req.scheme/index.html | 8 +- .../2.2/manual/cowboy_req.set_resp_body/index.html | 12 +- .../manual/cowboy_req.set_resp_cookie/index.html | 16 +- .../manual/cowboy_req.set_resp_header/index.html | 8 +- .../manual/cowboy_req.set_resp_headers/index.html | 6 +- .../cowboy/2.2/manual/cowboy_req.sock/index.html | 8 +- .../2.2/manual/cowboy_req.stream_body/index.html | 6 +- .../2.2/manual/cowboy_req.stream_reply/index.html | 8 +- .../manual/cowboy_req.stream_trailers/index.html | 6 +- .../en/cowboy/2.2/manual/cowboy_req.uri/index.html | 16 +- .../2.2/manual/cowboy_req.version/index.html | 8 +- docs/en/cowboy/2.2/manual/cowboy_req/index.html | 14 +- docs/en/cowboy/2.2/manual/cowboy_rest/index.html | 68 +- .../2.2/manual/cowboy_router.compile/index.html | 6 +- docs/en/cowboy/2.2/manual/cowboy_router/index.html | 8 +- docs/en/cowboy/2.2/manual/cowboy_static/index.html | 12 +- docs/en/cowboy/2.2/manual/cowboy_stream/index.html | 42 +- .../cowboy/2.2/manual/cowboy_websocket/index.html | 10 +- .../cowboy/2.2/manual/http_status_codes/index.html | 2 + docs/en/cowboy/2.2/manual/index.html | 4 +- docs/en/cowboy/2.3/guide/constraints/index.html | 12 +- docs/en/cowboy/2.3/guide/cookies/index.html | 22 +- docs/en/cowboy/2.3/guide/erlang_web/index.html | 2 + docs/en/cowboy/2.3/guide/flow_diagram/index.html | 2 + .../en/cowboy/2.3/guide/getting_started/index.html | 18 +- docs/en/cowboy/2.3/guide/handlers/index.html | 10 +- docs/en/cowboy/2.3/guide/index.html | 2 + docs/en/cowboy/2.3/guide/introduction/index.html | 2 + docs/en/cowboy/2.3/guide/listeners/index.html | 6 +- docs/en/cowboy/2.3/guide/loop_handlers/index.html | 10 +- docs/en/cowboy/2.3/guide/middlewares/index.html | 2 + .../cowboy/2.3/guide/migrating_from_1.0/index.html | 2 + .../cowboy/2.3/guide/migrating_from_2.0/index.html | 2 + .../cowboy/2.3/guide/migrating_from_2.1/index.html | 2 + .../cowboy/2.3/guide/migrating_from_2.2/index.html | 2 + docs/en/cowboy/2.3/guide/modern_web/index.html | 2 + docs/en/cowboy/2.3/guide/multipart/index.html | 14 +- docs/en/cowboy/2.3/guide/req/index.html | 60 +- docs/en/cowboy/2.3/guide/req_body/index.html | 18 +- .../en/cowboy/2.3/guide/resource_design/index.html | 2 + docs/en/cowboy/2.3/guide/resp/index.html | 38 +- .../en/cowboy/2.3/guide/rest_flowcharts/index.html | 2 + docs/en/cowboy/2.3/guide/rest_handlers/index.html | 4 +- .../en/cowboy/2.3/guide/rest_principles/index.html | 2 + docs/en/cowboy/2.3/guide/routing/index.html | 40 +- docs/en/cowboy/2.3/guide/specs/index.html | 2 + docs/en/cowboy/2.3/guide/static_files/index.html | 22 +- docs/en/cowboy/2.3/guide/streams/index.html | 2 + docs/en/cowboy/2.3/guide/ws_handlers/index.html | 30 +- docs/en/cowboy/2.3/guide/ws_protocol/index.html | 2 + .../en/cowboy/2.3/manual/cowboy.set_env/index.html | 6 +- .../2.3/manual/cowboy.start_clear/index.html | 8 +- .../cowboy/2.3/manual/cowboy.start_tls/index.html | 8 +- .../2.3/manual/cowboy.stop_listener/index.html | 6 +- docs/en/cowboy/2.3/manual/cowboy/index.html | 12 +- docs/en/cowboy/2.3/manual/cowboy_app/index.html | 4 +- .../2.3/manual/cowboy_constraints.int/index.html | 8 +- .../manual/cowboy_constraints.nonempty/index.html | 8 +- .../2.3/manual/cowboy_constraints/index.html | 6 +- .../2.3/manual/cowboy_handler.terminate/index.html | 6 +- .../en/cowboy/2.3/manual/cowboy_handler/index.html | 4 +- docs/en/cowboy/2.3/manual/cowboy_http/index.html | 4 +- docs/en/cowboy/2.3/manual/cowboy_http2/index.html | 4 +- docs/en/cowboy/2.3/manual/cowboy_loop/index.html | 4 +- .../cowboy/2.3/manual/cowboy_middleware/index.html | 6 +- .../2.3/manual/cowboy_req.binding/index.html | 8 +- .../2.3/manual/cowboy_req.bindings/index.html | 6 +- .../2.3/manual/cowboy_req.body_length/index.html | 6 +- .../cowboy/2.3/manual/cowboy_req.cert/index.html | 10 +- .../cowboy_req.delete_resp_header/index.html | 6 +- .../2.3/manual/cowboy_req.has_body/index.html | 6 +- .../2.3/manual/cowboy_req.has_resp_body/index.html | 6 +- .../manual/cowboy_req.has_resp_header/index.html | 6 +- .../cowboy/2.3/manual/cowboy_req.header/index.html | 10 +- .../2.3/manual/cowboy_req.headers/index.html | 8 +- .../cowboy/2.3/manual/cowboy_req.host/index.html | 8 +- .../2.3/manual/cowboy_req.host_info/index.html | 6 +- .../cowboy/2.3/manual/cowboy_req.inform/index.html | 8 +- .../2.3/manual/cowboy_req.match_cookies/index.html | 10 +- .../2.3/manual/cowboy_req.match_qs/index.html | 10 +- .../cowboy/2.3/manual/cowboy_req.method/index.html | 10 +- .../2.3/manual/cowboy_req.parse_cookies/index.html | 6 +- .../2.3/manual/cowboy_req.parse_header/index.html | 36 +- .../2.3/manual/cowboy_req.parse_qs/index.html | 6 +- .../cowboy/2.3/manual/cowboy_req.path/index.html | 8 +- .../2.3/manual/cowboy_req.path_info/index.html | 6 +- .../cowboy/2.3/manual/cowboy_req.peer/index.html | 8 +- .../cowboy/2.3/manual/cowboy_req.port/index.html | 8 +- .../cowboy/2.3/manual/cowboy_req.push/index.html | 8 +- docs/en/cowboy/2.3/manual/cowboy_req.qs/index.html | 8 +- .../2.3/manual/cowboy_req.read_body/index.html | 8 +- .../2.3/manual/cowboy_req.read_part/index.html | 10 +- .../manual/cowboy_req.read_part_body/index.html | 8 +- .../cowboy_req.read_urlencoded_body/index.html | 8 +- .../cowboy/2.3/manual/cowboy_req.reply/index.html | 10 +- .../2.3/manual/cowboy_req.resp_header/index.html | 8 +- .../2.3/manual/cowboy_req.resp_headers/index.html | 6 +- .../cowboy/2.3/manual/cowboy_req.scheme/index.html | 8 +- .../2.3/manual/cowboy_req.set_resp_body/index.html | 12 +- .../manual/cowboy_req.set_resp_cookie/index.html | 16 +- .../manual/cowboy_req.set_resp_header/index.html | 8 +- .../manual/cowboy_req.set_resp_headers/index.html | 6 +- .../cowboy/2.3/manual/cowboy_req.sock/index.html | 8 +- .../2.3/manual/cowboy_req.stream_body/index.html | 6 +- .../2.3/manual/cowboy_req.stream_reply/index.html | 8 +- .../manual/cowboy_req.stream_trailers/index.html | 6 +- .../en/cowboy/2.3/manual/cowboy_req.uri/index.html | 16 +- .../2.3/manual/cowboy_req.version/index.html | 8 +- docs/en/cowboy/2.3/manual/cowboy_req/index.html | 14 +- docs/en/cowboy/2.3/manual/cowboy_rest/index.html | 68 +- .../2.3/manual/cowboy_router.compile/index.html | 6 +- docs/en/cowboy/2.3/manual/cowboy_router/index.html | 8 +- docs/en/cowboy/2.3/manual/cowboy_static/index.html | 12 +- docs/en/cowboy/2.3/manual/cowboy_stream/index.html | 42 +- .../cowboy/2.3/manual/cowboy_websocket/index.html | 10 +- .../cowboy/2.3/manual/http_status_codes/index.html | 2 + docs/en/cowboy/2.3/manual/index.html | 4 +- docs/en/cowboy/2.4/guide/constraints/index.html | 12 +- docs/en/cowboy/2.4/guide/cookies/index.html | 22 +- docs/en/cowboy/2.4/guide/erlang_web/index.html | 2 + docs/en/cowboy/2.4/guide/flow_diagram/index.html | 2 + .../en/cowboy/2.4/guide/getting_started/index.html | 18 +- docs/en/cowboy/2.4/guide/handlers/index.html | 10 +- docs/en/cowboy/2.4/guide/index.html | 2 + docs/en/cowboy/2.4/guide/introduction/index.html | 2 + docs/en/cowboy/2.4/guide/listeners/index.html | 6 +- docs/en/cowboy/2.4/guide/loop_handlers/index.html | 10 +- docs/en/cowboy/2.4/guide/middlewares/index.html | 2 + .../cowboy/2.4/guide/migrating_from_1.0/index.html | 2 + .../cowboy/2.4/guide/migrating_from_2.0/index.html | 2 + .../cowboy/2.4/guide/migrating_from_2.1/index.html | 2 + .../cowboy/2.4/guide/migrating_from_2.2/index.html | 2 + .../cowboy/2.4/guide/migrating_from_2.3/index.html | 2 + docs/en/cowboy/2.4/guide/modern_web/index.html | 2 + docs/en/cowboy/2.4/guide/multipart/index.html | 14 +- docs/en/cowboy/2.4/guide/req/index.html | 60 +- docs/en/cowboy/2.4/guide/req_body/index.html | 18 +- .../en/cowboy/2.4/guide/resource_design/index.html | 2 + docs/en/cowboy/2.4/guide/resp/index.html | 38 +- .../en/cowboy/2.4/guide/rest_flowcharts/index.html | 2 + docs/en/cowboy/2.4/guide/rest_handlers/index.html | 4 +- .../en/cowboy/2.4/guide/rest_principles/index.html | 2 + docs/en/cowboy/2.4/guide/routing/index.html | 40 +- docs/en/cowboy/2.4/guide/specs/index.html | 2 + docs/en/cowboy/2.4/guide/static_files/index.html | 22 +- docs/en/cowboy/2.4/guide/streams/index.html | 2 + docs/en/cowboy/2.4/guide/ws_handlers/index.html | 30 +- docs/en/cowboy/2.4/guide/ws_protocol/index.html | 2 + .../en/cowboy/2.4/manual/cowboy.set_env/index.html | 6 +- .../2.4/manual/cowboy.start_clear/index.html | 8 +- .../cowboy/2.4/manual/cowboy.start_tls/index.html | 8 +- .../2.4/manual/cowboy.stop_listener/index.html | 6 +- docs/en/cowboy/2.4/manual/cowboy/index.html | 12 +- docs/en/cowboy/2.4/manual/cowboy_app/index.html | 4 +- .../2.4/manual/cowboy_constraints.int/index.html | 8 +- .../manual/cowboy_constraints.nonempty/index.html | 8 +- .../2.4/manual/cowboy_constraints/index.html | 6 +- .../2.4/manual/cowboy_handler.terminate/index.html | 6 +- .../en/cowboy/2.4/manual/cowboy_handler/index.html | 4 +- docs/en/cowboy/2.4/manual/cowboy_http/index.html | 4 +- docs/en/cowboy/2.4/manual/cowboy_http2/index.html | 4 +- docs/en/cowboy/2.4/manual/cowboy_loop/index.html | 4 +- .../cowboy/2.4/manual/cowboy_middleware/index.html | 6 +- .../2.4/manual/cowboy_req.binding/index.html | 8 +- .../2.4/manual/cowboy_req.bindings/index.html | 6 +- .../2.4/manual/cowboy_req.body_length/index.html | 6 +- .../cowboy/2.4/manual/cowboy_req.cert/index.html | 10 +- .../cowboy_req.delete_resp_header/index.html | 6 +- .../2.4/manual/cowboy_req.has_body/index.html | 6 +- .../2.4/manual/cowboy_req.has_resp_body/index.html | 6 +- .../manual/cowboy_req.has_resp_header/index.html | 6 +- .../cowboy/2.4/manual/cowboy_req.header/index.html | 10 +- .../2.4/manual/cowboy_req.headers/index.html | 8 +- .../cowboy/2.4/manual/cowboy_req.host/index.html | 8 +- .../2.4/manual/cowboy_req.host_info/index.html | 6 +- .../cowboy/2.4/manual/cowboy_req.inform/index.html | 8 +- .../2.4/manual/cowboy_req.match_cookies/index.html | 10 +- .../2.4/manual/cowboy_req.match_qs/index.html | 10 +- .../cowboy/2.4/manual/cowboy_req.method/index.html | 10 +- .../2.4/manual/cowboy_req.parse_cookies/index.html | 6 +- .../2.4/manual/cowboy_req.parse_header/index.html | 36 +- .../2.4/manual/cowboy_req.parse_qs/index.html | 6 +- .../cowboy/2.4/manual/cowboy_req.path/index.html | 8 +- .../2.4/manual/cowboy_req.path_info/index.html | 6 +- .../cowboy/2.4/manual/cowboy_req.peer/index.html | 8 +- .../cowboy/2.4/manual/cowboy_req.port/index.html | 8 +- .../cowboy/2.4/manual/cowboy_req.push/index.html | 8 +- docs/en/cowboy/2.4/manual/cowboy_req.qs/index.html | 8 +- .../2.4/manual/cowboy_req.read_body/index.html | 8 +- .../2.4/manual/cowboy_req.read_part/index.html | 10 +- .../manual/cowboy_req.read_part_body/index.html | 8 +- .../cowboy_req.read_urlencoded_body/index.html | 8 +- .../cowboy/2.4/manual/cowboy_req.reply/index.html | 10 +- .../2.4/manual/cowboy_req.resp_header/index.html | 8 +- .../2.4/manual/cowboy_req.resp_headers/index.html | 6 +- .../cowboy/2.4/manual/cowboy_req.scheme/index.html | 8 +- .../2.4/manual/cowboy_req.set_resp_body/index.html | 12 +- .../manual/cowboy_req.set_resp_cookie/index.html | 16 +- .../manual/cowboy_req.set_resp_header/index.html | 8 +- .../manual/cowboy_req.set_resp_headers/index.html | 6 +- .../cowboy/2.4/manual/cowboy_req.sock/index.html | 8 +- .../2.4/manual/cowboy_req.stream_body/index.html | 6 +- .../2.4/manual/cowboy_req.stream_reply/index.html | 8 +- .../manual/cowboy_req.stream_trailers/index.html | 6 +- .../en/cowboy/2.4/manual/cowboy_req.uri/index.html | 16 +- .../2.4/manual/cowboy_req.version/index.html | 8 +- docs/en/cowboy/2.4/manual/cowboy_req/index.html | 14 +- docs/en/cowboy/2.4/manual/cowboy_rest/index.html | 68 +- .../2.4/manual/cowboy_router.compile/index.html | 6 +- docs/en/cowboy/2.4/manual/cowboy_router/index.html | 8 +- docs/en/cowboy/2.4/manual/cowboy_static/index.html | 12 +- docs/en/cowboy/2.4/manual/cowboy_stream/index.html | 42 +- .../cowboy/2.4/manual/cowboy_websocket/index.html | 10 +- .../cowboy/2.4/manual/http_status_codes/index.html | 2 + docs/en/cowboy/2.4/manual/index.html | 4 +- docs/en/cowboy/2.5/guide/constraints/index.html | 12 +- docs/en/cowboy/2.5/guide/cookies/index.html | 22 +- docs/en/cowboy/2.5/guide/erlang_web/index.html | 2 + docs/en/cowboy/2.5/guide/flow_diagram/index.html | 2 + .../en/cowboy/2.5/guide/getting_started/index.html | 18 +- docs/en/cowboy/2.5/guide/handlers/index.html | 10 +- docs/en/cowboy/2.5/guide/index.html | 2 + docs/en/cowboy/2.5/guide/introduction/index.html | 2 + docs/en/cowboy/2.5/guide/listeners/index.html | 6 +- docs/en/cowboy/2.5/guide/loop_handlers/index.html | 10 +- docs/en/cowboy/2.5/guide/middlewares/index.html | 2 + .../cowboy/2.5/guide/migrating_from_1.0/index.html | 2 + .../cowboy/2.5/guide/migrating_from_2.0/index.html | 2 + .../cowboy/2.5/guide/migrating_from_2.1/index.html | 2 + .../cowboy/2.5/guide/migrating_from_2.2/index.html | 2 + .../cowboy/2.5/guide/migrating_from_2.3/index.html | 2 + .../cowboy/2.5/guide/migrating_from_2.4/index.html | 2 + docs/en/cowboy/2.5/guide/modern_web/index.html | 2 + docs/en/cowboy/2.5/guide/multipart/index.html | 14 +- docs/en/cowboy/2.5/guide/req/index.html | 60 +- docs/en/cowboy/2.5/guide/req_body/index.html | 18 +- .../en/cowboy/2.5/guide/resource_design/index.html | 2 + docs/en/cowboy/2.5/guide/resp/index.html | 38 +- .../en/cowboy/2.5/guide/rest_flowcharts/index.html | 2 + docs/en/cowboy/2.5/guide/rest_handlers/index.html | 4 +- .../en/cowboy/2.5/guide/rest_principles/index.html | 2 + docs/en/cowboy/2.5/guide/routing/index.html | 40 +- docs/en/cowboy/2.5/guide/specs/index.html | 2 + docs/en/cowboy/2.5/guide/static_files/index.html | 22 +- docs/en/cowboy/2.5/guide/streams/index.html | 2 + docs/en/cowboy/2.5/guide/ws_handlers/index.html | 30 +- docs/en/cowboy/2.5/guide/ws_protocol/index.html | 2 + .../en/cowboy/2.5/manual/cowboy.set_env/index.html | 6 +- .../2.5/manual/cowboy.start_clear/index.html | 8 +- .../cowboy/2.5/manual/cowboy.start_tls/index.html | 8 +- .../2.5/manual/cowboy.stop_listener/index.html | 6 +- docs/en/cowboy/2.5/manual/cowboy/index.html | 12 +- docs/en/cowboy/2.5/manual/cowboy_app/index.html | 4 +- .../2.5/manual/cowboy_constraints.int/index.html | 8 +- .../manual/cowboy_constraints.nonempty/index.html | 8 +- .../2.5/manual/cowboy_constraints/index.html | 6 +- .../2.5/manual/cowboy_handler.terminate/index.html | 6 +- .../en/cowboy/2.5/manual/cowboy_handler/index.html | 4 +- docs/en/cowboy/2.5/manual/cowboy_http/index.html | 4 +- docs/en/cowboy/2.5/manual/cowboy_http2/index.html | 4 +- docs/en/cowboy/2.5/manual/cowboy_loop/index.html | 4 +- .../cowboy/2.5/manual/cowboy_middleware/index.html | 6 +- .../2.5/manual/cowboy_req.binding/index.html | 8 +- .../2.5/manual/cowboy_req.bindings/index.html | 6 +- .../2.5/manual/cowboy_req.body_length/index.html | 6 +- .../cowboy/2.5/manual/cowboy_req.cert/index.html | 10 +- .../cowboy_req.delete_resp_header/index.html | 6 +- .../2.5/manual/cowboy_req.has_body/index.html | 6 +- .../2.5/manual/cowboy_req.has_resp_body/index.html | 6 +- .../manual/cowboy_req.has_resp_header/index.html | 6 +- .../cowboy/2.5/manual/cowboy_req.header/index.html | 10 +- .../2.5/manual/cowboy_req.headers/index.html | 8 +- .../cowboy/2.5/manual/cowboy_req.host/index.html | 8 +- .../2.5/manual/cowboy_req.host_info/index.html | 6 +- .../cowboy/2.5/manual/cowboy_req.inform/index.html | 8 +- .../2.5/manual/cowboy_req.match_cookies/index.html | 10 +- .../2.5/manual/cowboy_req.match_qs/index.html | 10 +- .../cowboy/2.5/manual/cowboy_req.method/index.html | 10 +- .../2.5/manual/cowboy_req.parse_cookies/index.html | 6 +- .../2.5/manual/cowboy_req.parse_header/index.html | 36 +- .../2.5/manual/cowboy_req.parse_qs/index.html | 6 +- .../cowboy/2.5/manual/cowboy_req.path/index.html | 8 +- .../2.5/manual/cowboy_req.path_info/index.html | 6 +- .../cowboy/2.5/manual/cowboy_req.peer/index.html | 8 +- .../cowboy/2.5/manual/cowboy_req.port/index.html | 8 +- .../cowboy/2.5/manual/cowboy_req.push/index.html | 8 +- docs/en/cowboy/2.5/manual/cowboy_req.qs/index.html | 8 +- .../index.html | 12 +- .../2.5/manual/cowboy_req.read_body/index.html | 8 +- .../2.5/manual/cowboy_req.read_part/index.html | 10 +- .../manual/cowboy_req.read_part_body/index.html | 8 +- .../cowboy_req.read_urlencoded_body/index.html | 8 +- .../cowboy/2.5/manual/cowboy_req.reply/index.html | 10 +- .../2.5/manual/cowboy_req.resp_header/index.html | 8 +- .../2.5/manual/cowboy_req.resp_headers/index.html | 6 +- .../cowboy/2.5/manual/cowboy_req.scheme/index.html | 8 +- .../2.5/manual/cowboy_req.set_resp_body/index.html | 12 +- .../manual/cowboy_req.set_resp_cookie/index.html | 16 +- .../manual/cowboy_req.set_resp_header/index.html | 8 +- .../manual/cowboy_req.set_resp_headers/index.html | 6 +- .../cowboy/2.5/manual/cowboy_req.sock/index.html | 8 +- .../2.5/manual/cowboy_req.stream_body/index.html | 6 +- .../2.5/manual/cowboy_req.stream_events/index.html | 6 +- .../2.5/manual/cowboy_req.stream_reply/index.html | 8 +- .../manual/cowboy_req.stream_trailers/index.html | 6 +- .../en/cowboy/2.5/manual/cowboy_req.uri/index.html | 16 +- .../2.5/manual/cowboy_req.version/index.html | 8 +- docs/en/cowboy/2.5/manual/cowboy_req/index.html | 14 +- docs/en/cowboy/2.5/manual/cowboy_rest/index.html | 68 +- .../2.5/manual/cowboy_router.compile/index.html | 6 +- docs/en/cowboy/2.5/manual/cowboy_router/index.html | 8 +- docs/en/cowboy/2.5/manual/cowboy_static/index.html | 12 +- docs/en/cowboy/2.5/manual/cowboy_stream/index.html | 42 +- .../cowboy/2.5/manual/cowboy_websocket/index.html | 10 +- .../cowboy/2.5/manual/http_status_codes/index.html | 2 + docs/en/cowboy/2.5/manual/index.html | 4 +- docs/en/cowboy/2.6/guide/constraints/index.html | 12 +- docs/en/cowboy/2.6/guide/cookies/index.html | 22 +- docs/en/cowboy/2.6/guide/erlang_web/index.html | 2 + docs/en/cowboy/2.6/guide/flow_diagram/index.html | 2 + .../en/cowboy/2.6/guide/getting_started/index.html | 18 +- docs/en/cowboy/2.6/guide/handlers/index.html | 10 +- docs/en/cowboy/2.6/guide/index.html | 2 + docs/en/cowboy/2.6/guide/introduction/index.html | 2 + docs/en/cowboy/2.6/guide/listeners/index.html | 6 +- docs/en/cowboy/2.6/guide/loop_handlers/index.html | 10 +- docs/en/cowboy/2.6/guide/middlewares/index.html | 2 + .../cowboy/2.6/guide/migrating_from_1.0/index.html | 2 + .../cowboy/2.6/guide/migrating_from_2.0/index.html | 2 + .../cowboy/2.6/guide/migrating_from_2.1/index.html | 2 + .../cowboy/2.6/guide/migrating_from_2.2/index.html | 2 + .../cowboy/2.6/guide/migrating_from_2.3/index.html | 2 + .../cowboy/2.6/guide/migrating_from_2.4/index.html | 2 + .../cowboy/2.6/guide/migrating_from_2.5/index.html | 2 + .../cowboy/2.6/guide/migrating_from_2.6/index.html | 2 + docs/en/cowboy/2.6/guide/modern_web/index.html | 2 + docs/en/cowboy/2.6/guide/multipart/index.html | 14 +- docs/en/cowboy/2.6/guide/req/index.html | 60 +- docs/en/cowboy/2.6/guide/req_body/index.html | 18 +- .../en/cowboy/2.6/guide/resource_design/index.html | 2 + docs/en/cowboy/2.6/guide/resp/index.html | 38 +- .../en/cowboy/2.6/guide/rest_flowcharts/index.html | 2 + docs/en/cowboy/2.6/guide/rest_handlers/index.html | 4 +- .../en/cowboy/2.6/guide/rest_principles/index.html | 2 + docs/en/cowboy/2.6/guide/routing/index.html | 42 +- docs/en/cowboy/2.6/guide/specs/index.html | 2 + docs/en/cowboy/2.6/guide/static_files/index.html | 22 +- docs/en/cowboy/2.6/guide/streams/index.html | 2 + docs/en/cowboy/2.6/guide/ws_handlers/index.html | 30 +- docs/en/cowboy/2.6/guide/ws_protocol/index.html | 2 + .../en/cowboy/2.6/manual/cowboy.set_env/index.html | 6 +- .../2.6/manual/cowboy.start_clear/index.html | 8 +- .../cowboy/2.6/manual/cowboy.start_tls/index.html | 8 +- .../2.6/manual/cowboy.stop_listener/index.html | 6 +- docs/en/cowboy/2.6/manual/cowboy/index.html | 12 +- docs/en/cowboy/2.6/manual/cowboy_app/index.html | 4 +- .../cowboy/2.6/manual/cowboy_compress_h/index.html | 4 +- .../2.6/manual/cowboy_constraints.int/index.html | 8 +- .../manual/cowboy_constraints.nonempty/index.html | 8 +- .../2.6/manual/cowboy_constraints/index.html | 6 +- .../2.6/manual/cowboy_handler.terminate/index.html | 6 +- .../en/cowboy/2.6/manual/cowboy_handler/index.html | 4 +- docs/en/cowboy/2.6/manual/cowboy_http/index.html | 4 +- docs/en/cowboy/2.6/manual/cowboy_http2/index.html | 4 +- docs/en/cowboy/2.6/manual/cowboy_loop/index.html | 4 +- .../cowboy/2.6/manual/cowboy_middleware/index.html | 6 +- .../2.6/manual/cowboy_req.binding/index.html | 8 +- .../2.6/manual/cowboy_req.bindings/index.html | 6 +- .../2.6/manual/cowboy_req.body_length/index.html | 6 +- .../cowboy/2.6/manual/cowboy_req.cert/index.html | 10 +- .../cowboy_req.delete_resp_header/index.html | 6 +- .../2.6/manual/cowboy_req.has_body/index.html | 6 +- .../2.6/manual/cowboy_req.has_resp_body/index.html | 6 +- .../manual/cowboy_req.has_resp_header/index.html | 6 +- .../cowboy/2.6/manual/cowboy_req.header/index.html | 10 +- .../2.6/manual/cowboy_req.headers/index.html | 8 +- .../cowboy/2.6/manual/cowboy_req.host/index.html | 8 +- .../2.6/manual/cowboy_req.host_info/index.html | 6 +- .../cowboy/2.6/manual/cowboy_req.inform/index.html | 8 +- .../2.6/manual/cowboy_req.match_cookies/index.html | 10 +- .../2.6/manual/cowboy_req.match_qs/index.html | 10 +- .../cowboy/2.6/manual/cowboy_req.method/index.html | 10 +- .../2.6/manual/cowboy_req.parse_cookies/index.html | 6 +- .../2.6/manual/cowboy_req.parse_header/index.html | 36 +- .../2.6/manual/cowboy_req.parse_qs/index.html | 6 +- .../cowboy/2.6/manual/cowboy_req.path/index.html | 8 +- .../2.6/manual/cowboy_req.path_info/index.html | 6 +- .../cowboy/2.6/manual/cowboy_req.peer/index.html | 8 +- .../cowboy/2.6/manual/cowboy_req.port/index.html | 8 +- .../cowboy/2.6/manual/cowboy_req.push/index.html | 8 +- docs/en/cowboy/2.6/manual/cowboy_req.qs/index.html | 8 +- .../index.html | 12 +- .../2.6/manual/cowboy_req.read_body/index.html | 8 +- .../2.6/manual/cowboy_req.read_part/index.html | 10 +- .../manual/cowboy_req.read_part_body/index.html | 8 +- .../cowboy_req.read_urlencoded_body/index.html | 8 +- .../cowboy/2.6/manual/cowboy_req.reply/index.html | 10 +- .../2.6/manual/cowboy_req.resp_header/index.html | 8 +- .../2.6/manual/cowboy_req.resp_headers/index.html | 6 +- .../cowboy/2.6/manual/cowboy_req.scheme/index.html | 8 +- .../2.6/manual/cowboy_req.set_resp_body/index.html | 12 +- .../manual/cowboy_req.set_resp_cookie/index.html | 16 +- .../manual/cowboy_req.set_resp_header/index.html | 8 +- .../manual/cowboy_req.set_resp_headers/index.html | 6 +- .../cowboy/2.6/manual/cowboy_req.sock/index.html | 8 +- .../2.6/manual/cowboy_req.stream_body/index.html | 6 +- .../2.6/manual/cowboy_req.stream_events/index.html | 6 +- .../2.6/manual/cowboy_req.stream_reply/index.html | 8 +- .../manual/cowboy_req.stream_trailers/index.html | 6 +- .../en/cowboy/2.6/manual/cowboy_req.uri/index.html | 16 +- .../2.6/manual/cowboy_req.version/index.html | 8 +- docs/en/cowboy/2.6/manual/cowboy_req/index.html | 14 +- docs/en/cowboy/2.6/manual/cowboy_rest/index.html | 72 +- .../2.6/manual/cowboy_router.compile/index.html | 6 +- docs/en/cowboy/2.6/manual/cowboy_router/index.html | 8 +- docs/en/cowboy/2.6/manual/cowboy_static/index.html | 14 +- docs/en/cowboy/2.6/manual/cowboy_stream/index.html | 40 +- .../cowboy/2.6/manual/cowboy_stream_h/index.html | 4 +- .../cowboy/2.6/manual/cowboy_websocket/index.html | 10 +- .../cowboy/2.6/manual/http_status_codes/index.html | 2 + docs/en/cowboy/2.6/manual/index.html | 4 +- docs/en/cowboy/2.7/guide/constraints.asciidoc | 123 + docs/en/cowboy/2.7/guide/constraints/index.html | 260 ++ docs/en/cowboy/2.7/guide/cookies.asciidoc | 139 + docs/en/cowboy/2.7/guide/cookies/index.html | 277 ++ docs/en/cowboy/2.7/guide/cowboy.sty | 8 + docs/en/cowboy/2.7/guide/erlang_web.asciidoc | 209 ++ docs/en/cowboy/2.7/guide/erlang_web/index.html | 226 ++ docs/en/cowboy/2.7/guide/flow_diagram.asciidoc | 109 + docs/en/cowboy/2.7/guide/flow_diagram/index.html | 204 ++ docs/en/cowboy/2.7/guide/getting_started.asciidoc | 148 + .../en/cowboy/2.7/guide/getting_started/index.html | 278 ++ docs/en/cowboy/2.7/guide/handlers.asciidoc | 90 + docs/en/cowboy/2.7/guide/handlers/index.html | 231 ++ docs/en/cowboy/2.7/guide/http_req_resp.png | Bin 0 -> 20713 bytes docs/en/cowboy/2.7/guide/http_req_resp.svg | 543 ++++ docs/en/cowboy/2.7/guide/index.html | 245 ++ docs/en/cowboy/2.7/guide/introduction.asciidoc | 75 + docs/en/cowboy/2.7/guide/introduction/index.html | 214 ++ docs/en/cowboy/2.7/guide/listeners.asciidoc | 128 + docs/en/cowboy/2.7/guide/listeners/index.html | 244 ++ docs/en/cowboy/2.7/guide/loop_handlers.asciidoc | 125 + docs/en/cowboy/2.7/guide/loop_handlers/index.html | 245 ++ docs/en/cowboy/2.7/guide/middlewares.asciidoc | 69 + docs/en/cowboy/2.7/guide/middlewares/index.html | 212 ++ .../cowboy/2.7/guide/migrating_from_1.0.asciidoc | 214 ++ .../cowboy/2.7/guide/migrating_from_1.0/index.html | 294 ++ .../cowboy/2.7/guide/migrating_from_2.0.asciidoc | 107 + .../cowboy/2.7/guide/migrating_from_2.0/index.html | 229 ++ .../cowboy/2.7/guide/migrating_from_2.1.asciidoc | 107 + .../cowboy/2.7/guide/migrating_from_2.1/index.html | 240 ++ .../cowboy/2.7/guide/migrating_from_2.2.asciidoc | 56 + .../cowboy/2.7/guide/migrating_from_2.2/index.html | 212 ++ .../cowboy/2.7/guide/migrating_from_2.3.asciidoc | 66 + .../cowboy/2.7/guide/migrating_from_2.3/index.html | 214 ++ .../cowboy/2.7/guide/migrating_from_2.4.asciidoc | 109 + .../cowboy/2.7/guide/migrating_from_2.4/index.html | 242 ++ .../cowboy/2.7/guide/migrating_from_2.5.asciidoc | 148 + .../cowboy/2.7/guide/migrating_from_2.5/index.html | 257 ++ .../cowboy/2.7/guide/migrating_from_2.6.asciidoc | 224 ++ .../cowboy/2.7/guide/migrating_from_2.6/index.html | 278 ++ docs/en/cowboy/2.7/guide/modern_web.asciidoc | 122 + docs/en/cowboy/2.7/guide/modern_web/index.html | 208 ++ docs/en/cowboy/2.7/guide/multipart.asciidoc | 169 ++ docs/en/cowboy/2.7/guide/multipart/index.html | 281 ++ docs/en/cowboy/2.7/guide/req.asciidoc | 365 +++ docs/en/cowboy/2.7/guide/req/index.html | 456 +++ docs/en/cowboy/2.7/guide/req_body.asciidoc | 130 + docs/en/cowboy/2.7/guide/req_body/index.html | 267 ++ docs/en/cowboy/2.7/guide/resource_design.asciidoc | 226 ++ .../en/cowboy/2.7/guide/resource_design/index.html | 241 ++ docs/en/cowboy/2.7/guide/resp.asciidoc | 368 +++ docs/en/cowboy/2.7/guide/resp/index.html | 423 +++ docs/en/cowboy/2.7/guide/rest_cond.png | Bin 0 -> 111628 bytes docs/en/cowboy/2.7/guide/rest_cond.svg | 1656 +++++++++++ docs/en/cowboy/2.7/guide/rest_conneg.png | Bin 0 -> 78133 bytes docs/en/cowboy/2.7/guide/rest_conneg.svg | 1135 +++++++ docs/en/cowboy/2.7/guide/rest_delete.png | Bin 0 -> 122185 bytes docs/en/cowboy/2.7/guide/rest_delete.svg | 1718 +++++++++++ docs/en/cowboy/2.7/guide/rest_flowcharts.asciidoc | 249 ++ .../en/cowboy/2.7/guide/rest_flowcharts/index.html | 238 ++ docs/en/cowboy/2.7/guide/rest_get_head.png | Bin 0 -> 94321 bytes docs/en/cowboy/2.7/guide/rest_get_head.svg | 1523 ++++++++++ docs/en/cowboy/2.7/guide/rest_handlers.asciidoc | 139 + docs/en/cowboy/2.7/guide/rest_handlers/index.html | 339 +++ docs/en/cowboy/2.7/guide/rest_options.png | Bin 0 -> 8539 bytes docs/en/cowboy/2.7/guide/rest_options.svg | 387 +++ docs/en/cowboy/2.7/guide/rest_principles.asciidoc | 160 + .../en/cowboy/2.7/guide/rest_principles/index.html | 212 ++ docs/en/cowboy/2.7/guide/rest_put_post_patch.png | Bin 0 -> 234474 bytes docs/en/cowboy/2.7/guide/rest_put_post_patch.svg | 3143 ++++++++++++++++++++ docs/en/cowboy/2.7/guide/rest_start.png | Bin 0 -> 110820 bytes docs/en/cowboy/2.7/guide/rest_start.svg | 1656 +++++++++++ docs/en/cowboy/2.7/guide/routing.asciidoc | 254 ++ docs/en/cowboy/2.7/guide/routing/index.html | 379 +++ docs/en/cowboy/2.7/guide/specs.asciidoc | 207 ++ docs/en/cowboy/2.7/guide/specs/index.html | 543 ++++ docs/en/cowboy/2.7/guide/static_files.asciidoc | 163 + docs/en/cowboy/2.7/guide/static_files/index.html | 275 ++ docs/en/cowboy/2.7/guide/streams.asciidoc | 75 + docs/en/cowboy/2.7/guide/streams/index.html | 199 ++ docs/en/cowboy/2.7/guide/ws_handlers.asciidoc | 292 ++ docs/en/cowboy/2.7/guide/ws_handlers/index.html | 364 +++ docs/en/cowboy/2.7/guide/ws_protocol.asciidoc | 69 + docs/en/cowboy/2.7/guide/ws_protocol/index.html | 196 ++ .../en/cowboy/2.7/manual/cowboy.set_env/index.html | 211 ++ .../2.7/manual/cowboy.start_clear/index.html | 229 ++ .../cowboy/2.7/manual/cowboy.start_tls/index.html | 234 ++ .../2.7/manual/cowboy.stop_listener/index.html | 194 ++ docs/en/cowboy/2.7/manual/cowboy/index.html | 228 ++ docs/en/cowboy/2.7/manual/cowboy_app/index.html | 239 ++ .../cowboy/2.7/manual/cowboy_compress_h/index.html | 195 ++ .../2.7/manual/cowboy_constraints.int/index.html | 204 ++ .../manual/cowboy_constraints.nonempty/index.html | 203 ++ .../2.7/manual/cowboy_constraints/index.html | 195 ++ .../2.7/manual/cowboy_handler.terminate/index.html | 206 ++ .../en/cowboy/2.7/manual/cowboy_handler/index.html | 198 ++ docs/en/cowboy/2.7/manual/cowboy_http/index.html | 292 ++ docs/en/cowboy/2.7/manual/cowboy_http2/index.html | 308 ++ docs/en/cowboy/2.7/manual/cowboy_loop/index.html | 212 ++ .../cowboy/2.7/manual/cowboy_metrics_h/index.html | 289 ++ .../cowboy/2.7/manual/cowboy_middleware/index.html | 209 ++ .../2.7/manual/cowboy_req.binding/index.html | 212 ++ .../2.7/manual/cowboy_req.bindings/index.html | 192 ++ .../2.7/manual/cowboy_req.body_length/index.html | 193 ++ .../cowboy/2.7/manual/cowboy_req.cast/index.html | 204 ++ .../cowboy/2.7/manual/cowboy_req.cert/index.html | 212 ++ .../cowboy_req.delete_resp_header/index.html | 197 ++ .../manual/cowboy_req.filter_cookies/index.html | 200 ++ .../2.7/manual/cowboy_req.has_body/index.html | 190 ++ .../2.7/manual/cowboy_req.has_resp_body/index.html | 195 ++ .../manual/cowboy_req.has_resp_header/index.html | 198 ++ .../cowboy/2.7/manual/cowboy_req.header/index.html | 219 ++ .../2.7/manual/cowboy_req.headers/index.html | 199 ++ .../cowboy/2.7/manual/cowboy_req.host/index.html | 199 ++ .../2.7/manual/cowboy_req.host_info/index.html | 193 ++ .../cowboy/2.7/manual/cowboy_req.inform/index.html | 217 ++ .../2.7/manual/cowboy_req.match_cookies/index.html | 220 ++ .../2.7/manual/cowboy_req.match_qs/index.html | 219 ++ .../cowboy/2.7/manual/cowboy_req.method/index.html | 210 ++ .../2.7/manual/cowboy_req.parse_cookies/index.html | 218 ++ .../2.7/manual/cowboy_req.parse_header/index.html | 370 +++ .../2.7/manual/cowboy_req.parse_qs/index.html | 207 ++ .../cowboy/2.7/manual/cowboy_req.path/index.html | 199 ++ .../2.7/manual/cowboy_req.path_info/index.html | 193 ++ .../cowboy/2.7/manual/cowboy_req.peer/index.html | 203 ++ .../cowboy/2.7/manual/cowboy_req.port/index.html | 200 ++ .../cowboy/2.7/manual/cowboy_req.push/index.html | 226 ++ docs/en/cowboy/2.7/manual/cowboy_req.qs/index.html | 199 ++ .../index.html | 250 ++ .../2.7/manual/cowboy_req.read_body/index.html | 224 ++ .../2.7/manual/cowboy_req.read_part/index.html | 246 ++ .../manual/cowboy_req.read_part_body/index.html | 222 ++ .../cowboy_req.read_urlencoded_body/index.html | 216 ++ .../cowboy/2.7/manual/cowboy_req.reply/index.html | 238 ++ .../2.7/manual/cowboy_req.resp_header/index.html | 210 ++ .../2.7/manual/cowboy_req.resp_headers/index.html | 190 ++ .../cowboy/2.7/manual/cowboy_req.scheme/index.html | 204 ++ .../2.7/manual/cowboy_req.set_resp_body/index.html | 231 ++ .../manual/cowboy_req.set_resp_cookie/index.html | 256 ++ .../manual/cowboy_req.set_resp_header/index.html | 212 ++ .../manual/cowboy_req.set_resp_headers/index.html | 203 ++ .../cowboy/2.7/manual/cowboy_req.sock/index.html | 199 ++ .../2.7/manual/cowboy_req.stream_body/index.html | 210 ++ .../2.7/manual/cowboy_req.stream_events/index.html | 224 ++ .../2.7/manual/cowboy_req.stream_reply/index.html | 227 ++ .../manual/cowboy_req.stream_trailers/index.html | 207 ++ .../en/cowboy/2.7/manual/cowboy_req.uri/index.html | 258 ++ .../2.7/manual/cowboy_req.version/index.html | 199 ++ docs/en/cowboy/2.7/manual/cowboy_req/index.html | 380 +++ docs/en/cowboy/2.7/manual/cowboy_rest/index.html | 658 ++++ .../2.7/manual/cowboy_router.compile/index.html | 200 ++ docs/en/cowboy/2.7/manual/cowboy_router/index.html | 217 ++ docs/en/cowboy/2.7/manual/cowboy_static/index.html | 275 ++ docs/en/cowboy/2.7/manual/cowboy_stream/index.html | 435 +++ .../cowboy/2.7/manual/cowboy_stream_h/index.html | 199 ++ .../cowboy/2.7/manual/cowboy_tracer_h/index.html | 212 ++ .../cowboy/2.7/manual/cowboy_websocket/index.html | 353 +++ .../cowboy/2.7/manual/http_status_codes/index.html | 244 ++ docs/en/cowboy/2.7/manual/index.html | 239 ++ .../2.7/manual/cow_cookie.parse_cookie/index.html | 180 -- .../2.7/manual/cow_cookie.setcookie/index.html | 190 -- docs/en/cowlib/2.7/manual/cow_cookie/index.html | 195 -- docs/en/cowlib/2.7/manual/cowlib_app/index.html | 171 -- docs/en/cowlib/2.7/manual/index.html | 171 -- .../2.8/manual/cow_cookie.parse_cookie/index.html | 180 ++ .../2.8/manual/cow_cookie.setcookie/index.html | 190 ++ docs/en/cowlib/2.8/manual/cow_cookie/index.html | 195 ++ docs/en/cowlib/2.8/manual/cowlib_app/index.html | 171 ++ docs/en/cowlib/2.8/manual/index.html | 171 ++ docs/en/gun/1.0/guide/connect/index.html | 12 +- docs/en/gun/1.0/guide/http/index.html | 42 +- docs/en/gun/1.0/guide/start/index.html | 10 +- docs/en/gun/1.0/guide/websocket/index.html | 10 +- docs/en/gun/1.0/manual/gun.await/index.html | 6 +- docs/en/gun/1.0/manual/gun.await_body/index.html | 4 +- docs/en/gun/1.0/manual/gun.await_up/index.html | 4 +- docs/en/gun/1.0/manual/gun.cancel/index.html | 4 +- docs/en/gun/1.0/manual/gun.close/index.html | 4 +- docs/en/gun/1.0/manual/gun.data/index.html | 4 +- docs/en/gun/1.0/manual/gun.delete/index.html | 6 +- docs/en/gun/1.0/manual/gun.flush/index.html | 6 +- docs/en/gun/1.0/manual/gun.get/index.html | 6 +- docs/en/gun/1.0/manual/gun.head/index.html | 6 +- docs/en/gun/1.0/manual/gun.info/index.html | 4 +- docs/en/gun/1.0/manual/gun.open/index.html | 8 +- docs/en/gun/1.0/manual/gun.open_unix/index.html | 6 +- docs/en/gun/1.0/manual/gun.options/index.html | 6 +- docs/en/gun/1.0/manual/gun.patch/index.html | 8 +- docs/en/gun/1.0/manual/gun.post/index.html | 8 +- docs/en/gun/1.0/manual/gun.put/index.html | 8 +- docs/en/gun/1.0/manual/gun.request/index.html | 4 +- docs/en/gun/1.0/manual/gun.ws_send/index.html | 4 +- docs/en/gun/1.0/manual/gun.ws_upgrade/index.html | 6 +- docs/en/gun/1.0/manual/gun/index.html | 10 +- docs/en/gun/1.0/manual/gun_app/index.html | 2 +- docs/en/gun/1.0/manual/gun_data/index.html | 4 +- docs/en/gun/1.0/manual/gun_down/index.html | 4 +- docs/en/gun/1.0/manual/gun_error/index.html | 4 +- docs/en/gun/1.0/manual/gun_inform/index.html | 4 +- docs/en/gun/1.0/manual/gun_push/index.html | 6 +- docs/en/gun/1.0/manual/gun_response/index.html | 4 +- docs/en/gun/1.0/manual/gun_trailers/index.html | 4 +- docs/en/gun/1.0/manual/gun_up/index.html | 4 +- docs/en/gun/1.0/manual/gun_upgrade/index.html | 4 +- docs/en/gun/1.0/manual/gun_ws/index.html | 4 +- docs/en/gun/1.0/manual/index.html | 2 +- docs/en/gun/1.1/guide/connect/index.html | 12 +- docs/en/gun/1.1/guide/http/index.html | 42 +- docs/en/gun/1.1/guide/start/index.html | 10 +- docs/en/gun/1.1/guide/websocket/index.html | 10 +- docs/en/gun/1.1/manual/gun.await/index.html | 6 +- docs/en/gun/1.1/manual/gun.await_body/index.html | 4 +- docs/en/gun/1.1/manual/gun.await_up/index.html | 4 +- docs/en/gun/1.1/manual/gun.cancel/index.html | 4 +- docs/en/gun/1.1/manual/gun.close/index.html | 4 +- docs/en/gun/1.1/manual/gun.data/index.html | 4 +- docs/en/gun/1.1/manual/gun.delete/index.html | 6 +- docs/en/gun/1.1/manual/gun.flush/index.html | 6 +- docs/en/gun/1.1/manual/gun.get/index.html | 6 +- docs/en/gun/1.1/manual/gun.head/index.html | 6 +- docs/en/gun/1.1/manual/gun.info/index.html | 4 +- docs/en/gun/1.1/manual/gun.open/index.html | 8 +- docs/en/gun/1.1/manual/gun.open_unix/index.html | 6 +- docs/en/gun/1.1/manual/gun.options/index.html | 6 +- docs/en/gun/1.1/manual/gun.patch/index.html | 8 +- docs/en/gun/1.1/manual/gun.post/index.html | 8 +- docs/en/gun/1.1/manual/gun.put/index.html | 8 +- docs/en/gun/1.1/manual/gun.request/index.html | 4 +- docs/en/gun/1.1/manual/gun.ws_send/index.html | 4 +- docs/en/gun/1.1/manual/gun.ws_upgrade/index.html | 6 +- docs/en/gun/1.1/manual/gun/index.html | 10 +- docs/en/gun/1.1/manual/gun_app/index.html | 2 +- docs/en/gun/1.1/manual/gun_data/index.html | 4 +- docs/en/gun/1.1/manual/gun_down/index.html | 4 +- docs/en/gun/1.1/manual/gun_error/index.html | 4 +- docs/en/gun/1.1/manual/gun_inform/index.html | 4 +- docs/en/gun/1.1/manual/gun_push/index.html | 6 +- docs/en/gun/1.1/manual/gun_response/index.html | 4 +- docs/en/gun/1.1/manual/gun_trailers/index.html | 4 +- docs/en/gun/1.1/manual/gun_up/index.html | 4 +- docs/en/gun/1.1/manual/gun_upgrade/index.html | 4 +- docs/en/gun/1.1/manual/gun_ws/index.html | 4 +- docs/en/gun/1.1/manual/index.html | 2 +- docs/en/gun/1.2/guide/connect/index.html | 12 +- docs/en/gun/1.2/guide/http/index.html | 42 +- docs/en/gun/1.2/guide/start/index.html | 10 +- docs/en/gun/1.2/guide/websocket/index.html | 10 +- docs/en/gun/1.2/manual/gun.await/index.html | 6 +- docs/en/gun/1.2/manual/gun.await_body/index.html | 4 +- docs/en/gun/1.2/manual/gun.await_up/index.html | 4 +- docs/en/gun/1.2/manual/gun.cancel/index.html | 4 +- docs/en/gun/1.2/manual/gun.close/index.html | 4 +- docs/en/gun/1.2/manual/gun.connect/index.html | 8 +- docs/en/gun/1.2/manual/gun.data/index.html | 4 +- docs/en/gun/1.2/manual/gun.delete/index.html | 6 +- docs/en/gun/1.2/manual/gun.flush/index.html | 6 +- docs/en/gun/1.2/manual/gun.get/index.html | 6 +- docs/en/gun/1.2/manual/gun.head/index.html | 6 +- docs/en/gun/1.2/manual/gun.info/index.html | 4 +- docs/en/gun/1.2/manual/gun.open/index.html | 8 +- docs/en/gun/1.2/manual/gun.open_unix/index.html | 6 +- docs/en/gun/1.2/manual/gun.options/index.html | 6 +- docs/en/gun/1.2/manual/gun.patch/index.html | 8 +- docs/en/gun/1.2/manual/gun.post/index.html | 8 +- docs/en/gun/1.2/manual/gun.put/index.html | 8 +- docs/en/gun/1.2/manual/gun.request/index.html | 4 +- docs/en/gun/1.2/manual/gun.ws_send/index.html | 4 +- docs/en/gun/1.2/manual/gun.ws_upgrade/index.html | 6 +- docs/en/gun/1.2/manual/gun/index.html | 12 +- docs/en/gun/1.2/manual/gun_app/index.html | 2 +- docs/en/gun/1.2/manual/gun_data/index.html | 4 +- docs/en/gun/1.2/manual/gun_down/index.html | 4 +- docs/en/gun/1.2/manual/gun_error/index.html | 4 +- docs/en/gun/1.2/manual/gun_inform/index.html | 4 +- docs/en/gun/1.2/manual/gun_push/index.html | 6 +- docs/en/gun/1.2/manual/gun_response/index.html | 4 +- docs/en/gun/1.2/manual/gun_trailers/index.html | 4 +- docs/en/gun/1.2/manual/gun_up/index.html | 4 +- docs/en/gun/1.2/manual/gun_upgrade/index.html | 4 +- docs/en/gun/1.2/manual/gun_ws/index.html | 4 +- docs/en/gun/1.2/manual/index.html | 2 +- docs/en/gun/1.3/guide/connect/index.html | 12 +- docs/en/gun/1.3/guide/http/index.html | 42 +- docs/en/gun/1.3/guide/start/index.html | 10 +- docs/en/gun/1.3/guide/websocket/index.html | 12 +- docs/en/gun/1.3/manual/gun.await/index.html | 6 +- docs/en/gun/1.3/manual/gun.await_body/index.html | 4 +- docs/en/gun/1.3/manual/gun.await_up/index.html | 4 +- docs/en/gun/1.3/manual/gun.cancel/index.html | 4 +- docs/en/gun/1.3/manual/gun.close/index.html | 4 +- docs/en/gun/1.3/manual/gun.connect/index.html | 8 +- docs/en/gun/1.3/manual/gun.data/index.html | 4 +- docs/en/gun/1.3/manual/gun.delete/index.html | 6 +- docs/en/gun/1.3/manual/gun.flush/index.html | 6 +- docs/en/gun/1.3/manual/gun.get/index.html | 6 +- docs/en/gun/1.3/manual/gun.head/index.html | 6 +- docs/en/gun/1.3/manual/gun.info/index.html | 4 +- docs/en/gun/1.3/manual/gun.open/index.html | 8 +- docs/en/gun/1.3/manual/gun.open_unix/index.html | 6 +- docs/en/gun/1.3/manual/gun.options/index.html | 6 +- docs/en/gun/1.3/manual/gun.patch/index.html | 8 +- docs/en/gun/1.3/manual/gun.post/index.html | 8 +- docs/en/gun/1.3/manual/gun.put/index.html | 8 +- docs/en/gun/1.3/manual/gun.request/index.html | 4 +- docs/en/gun/1.3/manual/gun.ws_send/index.html | 4 +- docs/en/gun/1.3/manual/gun.ws_upgrade/index.html | 6 +- docs/en/gun/1.3/manual/gun/index.html | 12 +- docs/en/gun/1.3/manual/gun_app/index.html | 2 +- docs/en/gun/1.3/manual/gun_data/index.html | 4 +- docs/en/gun/1.3/manual/gun_down/index.html | 4 +- docs/en/gun/1.3/manual/gun_error/index.html | 4 +- docs/en/gun/1.3/manual/gun_inform/index.html | 4 +- docs/en/gun/1.3/manual/gun_push/index.html | 6 +- docs/en/gun/1.3/manual/gun_response/index.html | 4 +- docs/en/gun/1.3/manual/gun_trailers/index.html | 4 +- docs/en/gun/1.3/manual/gun_up/index.html | 4 +- docs/en/gun/1.3/manual/gun_upgrade/index.html | 4 +- docs/en/gun/1.3/manual/gun_ws/index.html | 4 +- docs/en/gun/1.3/manual/index.html | 2 +- docs/en/gun/2.0/guide/connect/index.html | 12 +- docs/en/gun/2.0/guide/http/index.html | 42 +- docs/en/gun/2.0/guide/start/index.html | 10 +- docs/en/gun/2.0/guide/websocket/index.html | 14 +- docs/en/gun/2.0/manual/gun.await/index.html | 6 +- docs/en/gun/2.0/manual/gun.await_body/index.html | 4 +- docs/en/gun/2.0/manual/gun.await_up/index.html | 4 +- docs/en/gun/2.0/manual/gun.cancel/index.html | 4 +- docs/en/gun/2.0/manual/gun.close/index.html | 4 +- docs/en/gun/2.0/manual/gun.connect/index.html | 8 +- docs/en/gun/2.0/manual/gun.data/index.html | 4 +- docs/en/gun/2.0/manual/gun.delete/index.html | 6 +- docs/en/gun/2.0/manual/gun.flush/index.html | 6 +- docs/en/gun/2.0/manual/gun.get/index.html | 6 +- docs/en/gun/2.0/manual/gun.head/index.html | 6 +- docs/en/gun/2.0/manual/gun.headers/index.html | 4 +- docs/en/gun/2.0/manual/gun.info/index.html | 4 +- docs/en/gun/2.0/manual/gun.open/index.html | 8 +- docs/en/gun/2.0/manual/gun.open_unix/index.html | 6 +- docs/en/gun/2.0/manual/gun.options/index.html | 6 +- docs/en/gun/2.0/manual/gun.patch/index.html | 8 +- docs/en/gun/2.0/manual/gun.post/index.html | 8 +- docs/en/gun/2.0/manual/gun.put/index.html | 8 +- docs/en/gun/2.0/manual/gun.request/index.html | 4 +- docs/en/gun/2.0/manual/gun.set_owner/index.html | 4 +- docs/en/gun/2.0/manual/gun.shutdown/index.html | 4 +- docs/en/gun/2.0/manual/gun.stream_info/index.html | 4 +- docs/en/gun/2.0/manual/gun.update_flow/index.html | 4 +- docs/en/gun/2.0/manual/gun.ws_send/index.html | 6 +- docs/en/gun/2.0/manual/gun.ws_upgrade/index.html | 6 +- docs/en/gun/2.0/manual/gun/index.html | 20 +- docs/en/gun/2.0/manual/gun_app/index.html | 2 +- docs/en/gun/2.0/manual/gun_data/index.html | 4 +- docs/en/gun/2.0/manual/gun_down/index.html | 4 +- docs/en/gun/2.0/manual/gun_error/index.html | 4 +- docs/en/gun/2.0/manual/gun_inform/index.html | 4 +- docs/en/gun/2.0/manual/gun_push/index.html | 6 +- docs/en/gun/2.0/manual/gun_response/index.html | 4 +- docs/en/gun/2.0/manual/gun_socks_up/index.html | 4 +- docs/en/gun/2.0/manual/gun_trailers/index.html | 4 +- docs/en/gun/2.0/manual/gun_up/index.html | 4 +- docs/en/gun/2.0/manual/gun_upgrade/index.html | 4 +- docs/en/gun/2.0/manual/gun_ws/index.html | 4 +- docs/en/gun/2.0/manual/index.html | 2 +- docs/en/ranch/1.4/guide/embedded/index.html | 2 +- docs/en/ranch/1.4/guide/internals/index.html | 2 +- docs/en/ranch/1.4/guide/listeners/index.html | 32 +- docs/en/ranch/1.4/guide/parsers/index.html | 6 +- docs/en/ranch/1.4/guide/protocols/index.html | 6 +- docs/en/ranch/1.4/guide/ssl_auth/index.html | 6 +- docs/en/ranch/1.4/guide/transports/index.html | 14 +- docs/en/ranch/1.4/manual/ranch/index.html | 2 +- docs/en/ranch/1.4/manual/ranch_ssl/index.html | 2 +- docs/en/ranch/1.4/manual/ranch_tcp/index.html | 2 +- docs/en/ranch/1.5/guide/embedded/index.html | 2 +- docs/en/ranch/1.5/guide/internals/index.html | 2 +- docs/en/ranch/1.5/guide/listeners/index.html | 32 +- docs/en/ranch/1.5/guide/parsers/index.html | 6 +- docs/en/ranch/1.5/guide/protocols/index.html | 6 +- docs/en/ranch/1.5/guide/ssl_auth/index.html | 6 +- docs/en/ranch/1.5/guide/transports/index.html | 14 +- docs/en/ranch/1.5/manual/ranch/index.html | 2 +- docs/en/ranch/1.5/manual/ranch_ssl/index.html | 2 +- docs/en/ranch/1.5/manual/ranch_tcp/index.html | 2 +- docs/en/ranch/1.6/guide/embedded/index.html | 2 +- docs/en/ranch/1.6/guide/internals/index.html | 2 +- docs/en/ranch/1.6/guide/listeners/index.html | 40 +- docs/en/ranch/1.6/guide/parsers/index.html | 6 +- docs/en/ranch/1.6/guide/protocols/index.html | 6 +- docs/en/ranch/1.6/guide/ssl_auth/index.html | 6 +- docs/en/ranch/1.6/guide/transports/index.html | 16 +- docs/en/ranch/1.6/manual/index.html | 2 +- .../ranch/1.6/manual/ranch.child_spec/index.html | 4 +- docs/en/ranch/1.6/manual/ranch.get_addr/index.html | 4 +- .../manual/ranch.get_max_connections/index.html | 4 +- docs/en/ranch/1.6/manual/ranch.get_port/index.html | 4 +- .../manual/ranch.get_protocol_options/index.html | 4 +- .../ranch/1.6/manual/ranch.get_status/index.html | 4 +- .../manual/ranch.get_transport_options/index.html | 4 +- .../en/ranch/1.6/manual/ranch.handshake/index.html | 4 +- docs/en/ranch/1.6/manual/ranch.info/index.html | 6 +- docs/en/ranch/1.6/manual/ranch.procs/index.html | 6 +- .../1.6/manual/ranch.remove_connection/index.html | 4 +- .../1.6/manual/ranch.resume_listener/index.html | 4 +- .../manual/ranch.set_max_connections/index.html | 4 +- .../manual/ranch.set_protocol_options/index.html | 4 +- .../manual/ranch.set_transport_options/index.html | 4 +- .../1.6/manual/ranch.start_listener/index.html | 8 +- .../1.6/manual/ranch.stop_listener/index.html | 4 +- .../1.6/manual/ranch.suspend_listener/index.html | 4 +- .../manual/ranch.wait_for_connections/index.html | 6 +- docs/en/ranch/1.6/manual/ranch/index.html | 8 +- docs/en/ranch/1.6/manual/ranch_app/index.html | 2 +- docs/en/ranch/1.6/manual/ranch_protocol/index.html | 2 +- docs/en/ranch/1.6/manual/ranch_ssl/index.html | 6 +- docs/en/ranch/1.6/manual/ranch_tcp/index.html | 4 +- .../1.6/manual/ranch_transport.sendfile/index.html | 4 +- .../en/ranch/1.6/manual/ranch_transport/index.html | 40 +- docs/en/ranch/1.7/guide/embedded/index.html | 2 +- docs/en/ranch/1.7/guide/internals/index.html | 2 +- docs/en/ranch/1.7/guide/listeners/index.html | 40 +- docs/en/ranch/1.7/guide/parsers/index.html | 6 +- docs/en/ranch/1.7/guide/protocols/index.html | 6 +- docs/en/ranch/1.7/guide/ssl_auth/index.html | 6 +- docs/en/ranch/1.7/guide/transports/index.html | 16 +- docs/en/ranch/1.7/manual/index.html | 2 +- .../ranch/1.7/manual/ranch.child_spec/index.html | 4 +- docs/en/ranch/1.7/manual/ranch.get_addr/index.html | 4 +- .../manual/ranch.get_max_connections/index.html | 4 +- docs/en/ranch/1.7/manual/ranch.get_port/index.html | 4 +- .../manual/ranch.get_protocol_options/index.html | 4 +- .../ranch/1.7/manual/ranch.get_status/index.html | 4 +- .../manual/ranch.get_transport_options/index.html | 4 +- .../en/ranch/1.7/manual/ranch.handshake/index.html | 4 +- docs/en/ranch/1.7/manual/ranch.info/index.html | 6 +- docs/en/ranch/1.7/manual/ranch.procs/index.html | 6 +- .../1.7/manual/ranch.recv_proxy_header/index.html | 4 +- .../1.7/manual/ranch.remove_connection/index.html | 4 +- .../1.7/manual/ranch.resume_listener/index.html | 4 +- .../manual/ranch.set_max_connections/index.html | 4 +- .../manual/ranch.set_protocol_options/index.html | 4 +- .../manual/ranch.set_transport_options/index.html | 4 +- .../1.7/manual/ranch.start_listener/index.html | 8 +- .../1.7/manual/ranch.stop_listener/index.html | 4 +- .../1.7/manual/ranch.suspend_listener/index.html | 4 +- .../manual/ranch.wait_for_connections/index.html | 6 +- docs/en/ranch/1.7/manual/ranch/index.html | 8 +- docs/en/ranch/1.7/manual/ranch_app/index.html | 2 +- docs/en/ranch/1.7/manual/ranch_protocol/index.html | 2 +- .../manual/ranch_proxy_header.header/index.html | 6 +- .../1.7/manual/ranch_proxy_header.parse/index.html | 4 +- .../ranch/1.7/manual/ranch_proxy_header/index.html | 2 +- docs/en/ranch/1.7/manual/ranch_ssl/index.html | 6 +- docs/en/ranch/1.7/manual/ranch_tcp/index.html | 4 +- .../1.7/manual/ranch_transport.sendfile/index.html | 4 +- .../en/ranch/1.7/manual/ranch_transport/index.html | 40 +- .../ranch/2.0/guide/connection_draining/index.html | 8 +- docs/en/ranch/2.0/guide/embedded/index.html | 2 +- docs/en/ranch/2.0/guide/internals/index.html | 2 +- docs/en/ranch/2.0/guide/listeners.asciidoc | 4 +- docs/en/ranch/2.0/guide/listeners/index.html | 46 +- .../en/ranch/2.0/guide/migrating_from_1.7.asciidoc | 15 + .../ranch/2.0/guide/migrating_from_1.7/index.html | 10 +- docs/en/ranch/2.0/guide/parsers/index.html | 6 +- docs/en/ranch/2.0/guide/protocols.asciidoc | 2 +- docs/en/ranch/2.0/guide/protocols/index.html | 8 +- docs/en/ranch/2.0/guide/ssl_auth/index.html | 6 +- docs/en/ranch/2.0/guide/transports/index.html | 16 +- docs/en/ranch/2.0/manual/index.html | 2 +- .../ranch/2.0/manual/ranch.child_spec/index.html | 4 +- docs/en/ranch/2.0/manual/ranch.get_addr/index.html | 6 +- .../manual/ranch.get_max_connections/index.html | 4 +- docs/en/ranch/2.0/manual/ranch.get_port/index.html | 4 +- .../manual/ranch.get_protocol_options/index.html | 4 +- .../ranch/2.0/manual/ranch.get_status/index.html | 4 +- .../manual/ranch.get_transport_options/index.html | 4 +- .../en/ranch/2.0/manual/ranch.handshake/index.html | 22 +- .../2.0/manual/ranch.handshake_cancel/index.html | 198 ++ .../2.0/manual/ranch.handshake_continue/index.html | 208 ++ docs/en/ranch/2.0/manual/ranch.info/index.html | 6 +- docs/en/ranch/2.0/manual/ranch.procs/index.html | 6 +- .../2.0/manual/ranch.recv_proxy_header/index.html | 6 +- .../2.0/manual/ranch.remove_connection/index.html | 4 +- .../2.0/manual/ranch.resume_listener/index.html | 4 +- .../manual/ranch.set_max_connections/index.html | 4 +- .../manual/ranch.set_protocol_options/index.html | 4 +- .../manual/ranch.set_transport_options/index.html | 4 +- .../2.0/manual/ranch.start_listener/index.html | 8 +- .../2.0/manual/ranch.stop_listener/index.html | 4 +- .../2.0/manual/ranch.suspend_listener/index.html | 4 +- .../manual/ranch.wait_for_connections/index.html | 6 +- docs/en/ranch/2.0/manual/ranch/index.html | 12 +- docs/en/ranch/2.0/manual/ranch_app/index.html | 2 +- docs/en/ranch/2.0/manual/ranch_protocol/index.html | 2 +- .../manual/ranch_proxy_header.header/index.html | 6 +- .../2.0/manual/ranch_proxy_header.parse/index.html | 4 +- .../ranch/2.0/manual/ranch_proxy_header/index.html | 2 +- docs/en/ranch/2.0/manual/ranch_ssl/index.html | 11 +- docs/en/ranch/2.0/manual/ranch_tcp/index.html | 4 +- .../2.0/manual/ranch_transport.sendfile/index.html | 4 +- .../en/ranch/2.0/manual/ranch_transport/index.html | 79 +- docs/index.html | 9 +- docs/index.xml | 1400 ++++++++- donate/index.html | 224 ++ index.html | 232 +- index.xml | 1418 ++++++++- services/index.html | 224 ++ sitemap.xml | 465 ++- 1057 files changed, 53577 insertions(+), 4192 deletions(-) create mode 100644 _build/content/articles/cowboy-2.7.0.asciidoc create mode 100644 articles/cowboy-2.7.0/index.html create mode 100644 docs/en/cowboy/2.7/guide/constraints.asciidoc create mode 100644 docs/en/cowboy/2.7/guide/constraints/index.html create mode 100644 docs/en/cowboy/2.7/guide/cookies.asciidoc create mode 100644 docs/en/cowboy/2.7/guide/cookies/index.html create mode 100644 docs/en/cowboy/2.7/guide/cowboy.sty create mode 100644 docs/en/cowboy/2.7/guide/erlang_web.asciidoc create mode 100644 docs/en/cowboy/2.7/guide/erlang_web/index.html create mode 100644 docs/en/cowboy/2.7/guide/flow_diagram.asciidoc create mode 100644 docs/en/cowboy/2.7/guide/flow_diagram/index.html create mode 100644 docs/en/cowboy/2.7/guide/getting_started.asciidoc create mode 100644 docs/en/cowboy/2.7/guide/getting_started/index.html create mode 100644 docs/en/cowboy/2.7/guide/handlers.asciidoc create mode 100644 docs/en/cowboy/2.7/guide/handlers/index.html create mode 100644 docs/en/cowboy/2.7/guide/http_req_resp.png create mode 100644 docs/en/cowboy/2.7/guide/http_req_resp.svg create mode 100644 docs/en/cowboy/2.7/guide/index.html create mode 100644 docs/en/cowboy/2.7/guide/introduction.asciidoc create mode 100644 docs/en/cowboy/2.7/guide/introduction/index.html create mode 100644 docs/en/cowboy/2.7/guide/listeners.asciidoc create mode 100644 docs/en/cowboy/2.7/guide/listeners/index.html create mode 100644 docs/en/cowboy/2.7/guide/loop_handlers.asciidoc create mode 100644 docs/en/cowboy/2.7/guide/loop_handlers/index.html create mode 100644 docs/en/cowboy/2.7/guide/middlewares.asciidoc create mode 100644 docs/en/cowboy/2.7/guide/middlewares/index.html create mode 100644 docs/en/cowboy/2.7/guide/migrating_from_1.0.asciidoc create mode 100644 docs/en/cowboy/2.7/guide/migrating_from_1.0/index.html create mode 100644 docs/en/cowboy/2.7/guide/migrating_from_2.0.asciidoc create mode 100644 docs/en/cowboy/2.7/guide/migrating_from_2.0/index.html create mode 100644 docs/en/cowboy/2.7/guide/migrating_from_2.1.asciidoc create mode 100644 docs/en/cowboy/2.7/guide/migrating_from_2.1/index.html create mode 100644 docs/en/cowboy/2.7/guide/migrating_from_2.2.asciidoc create mode 100644 docs/en/cowboy/2.7/guide/migrating_from_2.2/index.html create mode 100644 docs/en/cowboy/2.7/guide/migrating_from_2.3.asciidoc create mode 100644 docs/en/cowboy/2.7/guide/migrating_from_2.3/index.html create mode 100644 docs/en/cowboy/2.7/guide/migrating_from_2.4.asciidoc create mode 100644 docs/en/cowboy/2.7/guide/migrating_from_2.4/index.html create mode 100644 docs/en/cowboy/2.7/guide/migrating_from_2.5.asciidoc create mode 100644 docs/en/cowboy/2.7/guide/migrating_from_2.5/index.html create mode 100644 docs/en/cowboy/2.7/guide/migrating_from_2.6.asciidoc create mode 100644 docs/en/cowboy/2.7/guide/migrating_from_2.6/index.html create mode 100644 docs/en/cowboy/2.7/guide/modern_web.asciidoc create mode 100644 docs/en/cowboy/2.7/guide/modern_web/index.html create mode 100644 docs/en/cowboy/2.7/guide/multipart.asciidoc create mode 100644 docs/en/cowboy/2.7/guide/multipart/index.html create mode 100644 docs/en/cowboy/2.7/guide/req.asciidoc create mode 100644 docs/en/cowboy/2.7/guide/req/index.html create mode 100644 docs/en/cowboy/2.7/guide/req_body.asciidoc create mode 100644 docs/en/cowboy/2.7/guide/req_body/index.html create mode 100644 docs/en/cowboy/2.7/guide/resource_design.asciidoc create mode 100644 docs/en/cowboy/2.7/guide/resource_design/index.html create mode 100644 docs/en/cowboy/2.7/guide/resp.asciidoc create mode 100644 docs/en/cowboy/2.7/guide/resp/index.html create mode 100644 docs/en/cowboy/2.7/guide/rest_cond.png create mode 100644 docs/en/cowboy/2.7/guide/rest_cond.svg create mode 100644 docs/en/cowboy/2.7/guide/rest_conneg.png create mode 100644 docs/en/cowboy/2.7/guide/rest_conneg.svg create mode 100644 docs/en/cowboy/2.7/guide/rest_delete.png create mode 100644 docs/en/cowboy/2.7/guide/rest_delete.svg create mode 100644 docs/en/cowboy/2.7/guide/rest_flowcharts.asciidoc create mode 100644 docs/en/cowboy/2.7/guide/rest_flowcharts/index.html create mode 100644 docs/en/cowboy/2.7/guide/rest_get_head.png create mode 100644 docs/en/cowboy/2.7/guide/rest_get_head.svg create mode 100644 docs/en/cowboy/2.7/guide/rest_handlers.asciidoc create mode 100644 docs/en/cowboy/2.7/guide/rest_handlers/index.html create mode 100644 docs/en/cowboy/2.7/guide/rest_options.png create mode 100644 docs/en/cowboy/2.7/guide/rest_options.svg create mode 100644 docs/en/cowboy/2.7/guide/rest_principles.asciidoc create mode 100644 docs/en/cowboy/2.7/guide/rest_principles/index.html create mode 100644 docs/en/cowboy/2.7/guide/rest_put_post_patch.png create mode 100644 docs/en/cowboy/2.7/guide/rest_put_post_patch.svg create mode 100644 docs/en/cowboy/2.7/guide/rest_start.png create mode 100644 docs/en/cowboy/2.7/guide/rest_start.svg create mode 100644 docs/en/cowboy/2.7/guide/routing.asciidoc create mode 100644 docs/en/cowboy/2.7/guide/routing/index.html create mode 100644 docs/en/cowboy/2.7/guide/specs.asciidoc create mode 100644 docs/en/cowboy/2.7/guide/specs/index.html create mode 100644 docs/en/cowboy/2.7/guide/static_files.asciidoc create mode 100644 docs/en/cowboy/2.7/guide/static_files/index.html create mode 100644 docs/en/cowboy/2.7/guide/streams.asciidoc create mode 100644 docs/en/cowboy/2.7/guide/streams/index.html create mode 100644 docs/en/cowboy/2.7/guide/ws_handlers.asciidoc create mode 100644 docs/en/cowboy/2.7/guide/ws_handlers/index.html create mode 100644 docs/en/cowboy/2.7/guide/ws_protocol.asciidoc create mode 100644 docs/en/cowboy/2.7/guide/ws_protocol/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy.set_env/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy.start_clear/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy.start_tls/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy.stop_listener/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_app/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_compress_h/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_constraints.int/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_constraints.nonempty/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_constraints/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_handler.terminate/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_handler/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_http/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_http2/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_loop/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_metrics_h/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_middleware/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.binding/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.bindings/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.body_length/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.cast/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.cert/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.delete_resp_header/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.filter_cookies/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.has_body/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.has_resp_body/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.has_resp_header/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.header/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.headers/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.host/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.host_info/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.inform/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.match_cookies/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.match_qs/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.method/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.parse_cookies/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.parse_header/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.parse_qs/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.path/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.path_info/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.peer/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.port/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.push/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.qs/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.read_and_match_urlencoded_body/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.read_body/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.read_part/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.read_part_body/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.read_urlencoded_body/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.reply/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.resp_header/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.resp_headers/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.scheme/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.set_resp_body/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.set_resp_cookie/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.set_resp_header/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.set_resp_headers/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.sock/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.stream_body/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.stream_events/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.stream_reply/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.stream_trailers/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.uri/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req.version/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_req/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_rest/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_router.compile/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_router/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_static/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_stream/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_stream_h/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_tracer_h/index.html create mode 100644 docs/en/cowboy/2.7/manual/cowboy_websocket/index.html create mode 100644 docs/en/cowboy/2.7/manual/http_status_codes/index.html create mode 100644 docs/en/cowboy/2.7/manual/index.html delete mode 100644 docs/en/cowlib/2.7/manual/cow_cookie.parse_cookie/index.html delete mode 100644 docs/en/cowlib/2.7/manual/cow_cookie.setcookie/index.html delete mode 100644 docs/en/cowlib/2.7/manual/cow_cookie/index.html delete mode 100644 docs/en/cowlib/2.7/manual/cowlib_app/index.html delete mode 100644 docs/en/cowlib/2.7/manual/index.html create mode 100644 docs/en/cowlib/2.8/manual/cow_cookie.parse_cookie/index.html create mode 100644 docs/en/cowlib/2.8/manual/cow_cookie.setcookie/index.html create mode 100644 docs/en/cowlib/2.8/manual/cow_cookie/index.html create mode 100644 docs/en/cowlib/2.8/manual/cowlib_app/index.html create mode 100644 docs/en/cowlib/2.8/manual/index.html create mode 100644 docs/en/ranch/2.0/manual/ranch.handshake_cancel/index.html create mode 100644 docs/en/ranch/2.0/manual/ranch.handshake_continue/index.html diff --git a/_build/content/articles/cowboy-2.7.0.asciidoc b/_build/content/articles/cowboy-2.7.0.asciidoc new file mode 100644 index 00000000..2d07f584 --- /dev/null +++ b/_build/content/articles/cowboy-2.7.0.asciidoc @@ -0,0 +1,50 @@ ++++ +date = "2019-10-16T07:00:00+01:00" +title = "Cowboy 2.7" + ++++ + +Cowboy `2.7.0` has been released! + +Cowboy 2.7 improves the HTTP/2 code with optimizations +around the sending of DATA and WINDOW_UPDATE frames; +graceful shutdown of the connection when the client is +going away; and rate limiting mechanisms. New options +and mechanisms have also been added to control the +amount of memory Cowboy ends up using with both HTTP/1.1 +and HTTP/2. Much of this work was done to address +HTTP/2 CVEs about potential denial of service. + +In addition, many of the experimental features introduced +in previous releases have been marked stable and are now +documented. These include the commands-based Websocket +handler interface; the metrics and tracer stream handlers; +and the ability to change options on a per-stream basis +(for example idle timeouts). + +This is the first Cowboy version that is compatible with +the upcoming Ranch 2.0. Cowboy 2.7 will use Ranch 1.7.1 +by default. + +Cowboy 2.0 requires Erlang/OTP 20 or above and is tested +and supported on Linux, FreeBSD, macOS and Windows. + +A complete +list of changes can be found in the migration guide: +https://ninenines.eu/docs/en/cowboy/2.7/guide/migrating_from_2.6/[Migrating from Cowboy 2.6 to 2.7]. + +I have more free time available for consulting or for +paid open source development at the moment. If you +are interested, drop me an email at mailto:contact@ninenines.eu[contact@ninenines.eu]. +I have gathered that there's interest in a pure Erlang GRPC +implementation, and there's also QUIC and HTTP/3 that will +be ready soon, for examples of projects I'd be interested in +working on. + +You can donate to this project via +https://salt.bountysource.com/teams/ninenines[BountySource]. +These funds are used to pay for additional servers for +testing. + +As usual, feedback is appreciated, and issues or +questions should be sent via Github tickets. Thanks! diff --git a/_build/data/projects/cowboy.toml b/_build/data/projects/cowboy.toml index 2720091c..5124e276 100644 --- a/_build/data/projects/cowboy.toml +++ b/_build/data/projects/cowboy.toml @@ -3,8 +3,8 @@ catchphrase = "Small, fast, modern HTTP server." description = "Cowboy is the ultimate server for the modern Web with support for Websocket, HTTP/2 and REST." name = "cowboy" repository = "https://github.com/ninenines/cowboy" -versions = ["2.6", "2.5", "2.4", "2.3", "2.2"] -branches = ["2.6.3", "2.5.0", "2.4.0", "2.3.0", "2.2.2"] +versions = ["2.7", "2.6", "2.5", "2.4", "2.3", "2.2"] +branches = ["master", "2.6.3", "2.5.0", "2.4.0", "2.3.0", "2.2.2"] has_source = true has_guide = true has_manual = true diff --git a/_build/data/projects/cowlib.toml b/_build/data/projects/cowlib.toml index e87a1232..21b72bad 100644 --- a/_build/data/projects/cowlib.toml +++ b/_build/data/projects/cowlib.toml @@ -3,7 +3,7 @@ catchphrase = "Support library for the Web." description = "The Web toolbox for HTTP/1.1, HTTP/2, Websocket, Multipart, Cookies, URL encoding..." name = "cowlib" repository = "https://github.com/ninenines/cowlib" -versions = ["2.7"] +versions = ["2.8"] branches = ["master"] has_source = true has_manual = true diff --git a/articles/asciideck/index.html b/articles/asciideck/index.html index d15bac27..0b83d8d2 100644 --- a/articles/asciideck/index.html +++ b/articles/asciideck/index.html @@ -75,7 +75,7 @@

Asciideck has been tested against around 600 Asciidoc documents that I wrote. This website is now generated using Asciideck (Hugo will use the asciidoc script to generate HTML). But a lot of elements are not parsed properly, or are ignored by translator modules. It will take many more documents to get close to the original Asciidoc implementation in terms of features.

I wrote this project twice: first as an ugly prototype that generated man pages, and then I rewrote that using a different technique for parsing. I looked at a few different Asciidoc and Markdown implementations and found the Markdown code in Pandoc to be surprisingly readable despite being written in Haskell. I could not fully understand how it worked, but I could follow it based on my knowledge of the syntax.

I decided to write small functions that only contain the "happy path" for each possible blocks in an Asciidoc document. Take this function for example:

-
@@ -110,6 +110,10 @@ http://www.gnu.org/software/src-highlite --> +
  • Cowboy 2.7
  • + + +
  • Gun 2.0 pre-release 1
  • diff --git a/articles/cowboy-2.0.0-pre.4/index.html b/articles/cowboy-2.0.0-pre.4/index.html index 68546c82..2d3dbef6 100644 --- a/articles/cowboy-2.0.0-pre.4/index.html +++ b/articles/cowboy-2.0.0-pre.4/index.html @@ -129,6 +129,10 @@ +
  • Cowboy 2.7
  • + + +
  • Gun 2.0 pre-release 1
  • diff --git a/articles/cowboy-2.0.0-rc.1/index.html b/articles/cowboy-2.0.0-rc.1/index.html index b7b675f8..84a3f66c 100644 --- a/articles/cowboy-2.0.0-rc.1/index.html +++ b/articles/cowboy-2.0.0-rc.1/index.html @@ -100,6 +100,10 @@ +
  • Cowboy 2.7
  • + + +
  • Gun 2.0 pre-release 1
  • diff --git a/articles/cowboy-2.0.0-rc.2/index.html b/articles/cowboy-2.0.0-rc.2/index.html index ae11ebc1..19fcd601 100644 --- a/articles/cowboy-2.0.0-rc.2/index.html +++ b/articles/cowboy-2.0.0-rc.2/index.html @@ -93,6 +93,10 @@ +
  • Cowboy 2.7
  • + + +
  • Gun 2.0 pre-release 1
  • diff --git a/articles/cowboy-2.0.0/index.html b/articles/cowboy-2.0.0/index.html index 5b986030..caa49de2 100644 --- a/articles/cowboy-2.0.0/index.html +++ b/articles/cowboy-2.0.0/index.html @@ -99,6 +99,10 @@ +
  • Cowboy 2.7
  • + + +
  • Gun 2.0 pre-release 1
  • diff --git a/articles/cowboy-2.1.0/index.html b/articles/cowboy-2.1.0/index.html index 39381e67..038c361b 100644 --- a/articles/cowboy-2.1.0/index.html +++ b/articles/cowboy-2.1.0/index.html @@ -96,6 +96,10 @@ +
  • Cowboy 2.7
  • + + +
  • Gun 2.0 pre-release 1
  • diff --git a/articles/cowboy-2.2.0/index.html b/articles/cowboy-2.2.0/index.html index d7f4460e..5b30c33a 100644 --- a/articles/cowboy-2.2.0/index.html +++ b/articles/cowboy-2.2.0/index.html @@ -94,6 +94,10 @@ +
  • Cowboy 2.7
  • + + +
  • Gun 2.0 pre-release 1
  • diff --git a/articles/cowboy-2.3.0/index.html b/articles/cowboy-2.3.0/index.html index 5f62ef99..6169fd35 100644 --- a/articles/cowboy-2.3.0/index.html +++ b/articles/cowboy-2.3.0/index.html @@ -86,6 +86,10 @@ +
  • Cowboy 2.7
  • + + +
  • Gun 2.0 pre-release 1
  • diff --git a/articles/cowboy-2.4.0/index.html b/articles/cowboy-2.4.0/index.html index a8717317..3e81e80f 100644 --- a/articles/cowboy-2.4.0/index.html +++ b/articles/cowboy-2.4.0/index.html @@ -88,6 +88,10 @@ +
  • Cowboy 2.7
  • + + +
  • Gun 2.0 pre-release 1
  • diff --git a/articles/cowboy-2.5.0/index.html b/articles/cowboy-2.5.0/index.html index 1cc443a8..3bf0ae20 100644 --- a/articles/cowboy-2.5.0/index.html +++ b/articles/cowboy-2.5.0/index.html @@ -92,6 +92,10 @@ +
  • Cowboy 2.7
  • + + +
  • Gun 2.0 pre-release 1
  • diff --git a/articles/cowboy-2.6.0/index.html b/articles/cowboy-2.6.0/index.html index 5d563160..3ee0a481 100644 --- a/articles/cowboy-2.6.0/index.html +++ b/articles/cowboy-2.6.0/index.html @@ -89,6 +89,10 @@ +
  • Cowboy 2.7
  • + + +
  • Gun 2.0 pre-release 1
  • diff --git a/articles/cowboy-2.7.0/index.html b/articles/cowboy-2.7.0/index.html new file mode 100644 index 00000000..cb46aa20 --- /dev/null +++ b/articles/cowboy-2.7.0/index.html @@ -0,0 +1,307 @@ + + + + + + + + + + Nine Nines: Cowboy 2.7 + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +
    +

    Cowboy 2.7

    +

    + 2019 + 16 Oct +

    +
    + +

    Cowboy 2.7.0 has been released!

    +

    Cowboy 2.7 improves the HTTP/2 code with optimizations around the sending of DATA and WINDOW_UPDATE frames; graceful shutdown of the connection when the client is going away; and rate limiting mechanisms. New options and mechanisms have also been added to control the amount of memory Cowboy ends up using with both HTTP/1.1 and HTTP/2. Much of this work was done to address HTTP/2 CVEs about potential denial of service.

    +

    In addition, many of the experimental features introduced in previous releases have been marked stable and are now documented. These include the commands-based Websocket handler interface; the metrics and tracer stream handlers; and the ability to change options on a per-stream basis (for example idle timeouts).

    +

    This is the first Cowboy version that is compatible with the upcoming Ranch 2.0. Cowboy 2.7 will use Ranch 1.7.1 by default.

    +

    Cowboy 2.0 requires Erlang/OTP 20 or above and is tested and supported on Linux, FreeBSD, macOS and Windows.

    +

    A complete list of changes can be found in the migration guide: Migrating from Cowboy 2.6 to 2.7.

    +

    I have more free time available for consulting or for paid open source development at the moment. If you are interested, drop me an email at contact@ninenines.eu. I have gathered that there's interest in a pure Erlang GRPC implementation, and there's also QUIC and HTTP/3 that will be ready soon, for examples of projects I'd be interested in working on.

    +

    You can donate to this project via BountySource. These funds are used to pay for additional servers for testing.

    +

    As usual, feedback is appreciated, and issues or questions should be sent via Github tickets. Thanks!

    + + +
    +
    + + +
    +
    +
    + + + + + + + + diff --git a/articles/cowboy2-qs/index.html b/articles/cowboy2-qs/index.html index 8286d7ee..55ebb3a6 100644 --- a/articles/cowboy2-qs/index.html +++ b/articles/cowboy2-qs/index.html @@ -95,7 +95,7 @@

    I feel that this three function interface provides everything one would need to comfortably write applications. You can get low level and get the query string directly; you can get a list of key/value binaries without any additional processing and do it on your own; or you can get a processed map that contains Erlang terms ready to be used.

    I strongly believe that by democratizing the constraints to more than just bindings, but also to query string, cookies and other key/values in Cowboy, we can allow the developer to quickly and easily go from HTTP request to Erlang function calls. The constraints are reusable functions that can serve as guards against unwanted data, providing convenience in the process.

    Your handlers will not look like an endless series of calls to get and convert the input data, they will instead be just one call at the beginning followed by the actual application logic, thanks to constraints and maps.

    -
    @@ -130,6 +130,10 @@ http://www.gnu.org/software/src-highlite --> +
  • Cowboy 2.7
  • + + +
  • Gun 2.0 pre-release 1
  • diff --git a/articles/dont-let-it-crash/index.html b/articles/dont-let-it-crash/index.html index 1e9e9110..39e5a005 100644 --- a/articles/dont-let-it-crash/index.html +++ b/articles/dont-let-it-crash/index.html @@ -105,6 +105,10 @@ +
  • Cowboy 2.7
  • + + +
  • Gun 2.0 pre-release 1
  • diff --git a/articles/erlang-meetup-10-septembre-2019/index.html b/articles/erlang-meetup-10-septembre-2019/index.html index f394df19..74575492 100644 --- a/articles/erlang-meetup-10-septembre-2019/index.html +++ b/articles/erlang-meetup-10-septembre-2019/index.html @@ -85,6 +85,10 @@ +
  • Cowboy 2.7
  • + + +
  • Gun 2.0 pre-release 1
  • diff --git a/articles/erlang-scalability/index.html b/articles/erlang-scalability/index.html index 92f7030f..b3809ce6 100644 --- a/articles/erlang-scalability/index.html +++ b/articles/erlang-scalability/index.html @@ -117,6 +117,10 @@ +
  • Cowboy 2.7
  • + + +
  • Gun 2.0 pre-release 1
  • diff --git a/articles/erlang-validate-utf8/index.html b/articles/erlang-validate-utf8/index.html index 9fa1529d..4569972f 100644 --- a/articles/erlang-validate-utf8/index.html +++ b/articles/erlang-validate-utf8/index.html @@ -73,7 +73,7 @@ change in the way the code validates UTF-8 data (required for text and close frames as per the spec).

    When looking into why the permessage-deflate tests in autobahntestsuite were taking such a long time, I found that autobahn is using an adaptation of the algorithm named Flexible and Economical UTF-8 Decoder. This is the C99 implementation:

    -
    @@ -113,7 +113,7 @@ uint32_t inline }

    And this is the Erlang implementation I came up with:

    -
    @@ -147,7 +147,7 @@ http://www.gnu.org/software/src-highlite -->

    Does it look similar to you? So how did we get there?

    I started with a naive implementation of the original. First, we don't need the codepoint calculated and extracted for our validation function. We just want to know the data is valid, so we only need to calculate the next state. Then, the only thing we needed to be careful about was that tuples are 1-based, and that we need to stop processing the binary when we get the state 1 or when the binary is empty.

    -
    @@ -161,7 +161,7 @@ http://www.gnu.org/software/src-highlite -->

    It was time to step into crazy land.

    Erlang is very good at pattern matching, even more so than doing some arithmetic coupled by fetching elements from a tuple. So I decided I was going to write all possible clauses for all combinations of C and State. And by write I mean generate.

    So I opened my Erlang shell, defined the variable D to be the tuple ?UTF8D with its 400 elements, and then ran the following expression (after a bit of trial and error):

    -
    @@ -175,7 +175,7 @@ http://www.gnu.org/software/src-highlite -->

    There was a little more work to be done on this generated code that I did using regular expressions. We need to recurse when the resulting state is not 1. We also need to stop when the binary is empty, making it the 2305th clause.

    Still, 2305 is a lot. But hey, the code did work, and faster than the previous implementation too! But hey, perhaps I could find a way to reduce its size.

    Removing all the clauses that return 1 and putting a catch-all clause at the end instead reduced the number to about 500, and showed that many clauses were similar:

    -
    @@ -189,7 +189,7 @@ http://www.gnu.org/software/src-highlite --> validate_utf8(<< 7, Rest/bits >>, 0) -> validate_utf8(Rest, 0);

    But also:

    -
    @@ -207,7 +207,7 @@ http://www.gnu.org/software/src-highlite -->

    Patterns, my favorites!

    A little more time was spent to edit the 500 or so clauses into smaller equivalents, testing that performance was not impacted, and comitting the result.

    The patterns above can be found here in the resulting function:

    -
    @@ -233,6 +233,10 @@ http://www.gnu.org/software/src-highlite --> +
  • Cowboy 2.7
  • + + +
  • Gun 2.0 pre-release 1
  • diff --git a/articles/erlang.mk-and-relx/index.html b/articles/erlang.mk-and-relx/index.html index b231fb97..65f881a8 100644 --- a/articles/erlang.mk-and-relx/index.html +++ b/articles/erlang.mk-and-relx/index.html @@ -74,40 +74,16 @@

    Erlang.mk solves the first step. It is an include file for GNU Make. Just including it in a Makefile is enough to allow building your project, fetching and building dependencies, building documentation, performing static analysis and more.

    Relx solves the second step. It is a release creation tool, wrapped into a single executable file. It doesn't require a configuration file. And if you do need one, it will be a pretty small one.

    Let's take a look at the smallest Erlang.mk powered Makefile. There is only one thing required: defining the project name.

    -
    -
    PROJECT = my_project
    -
    -include erlang.mk
    +
    source-highlight: could not find a language definition for make

    Simply doing this allows you to build your application by typing make, running tests using make tests, and more. It will even compile your .dtl files found in the templates/ directory if you are using ErlyDTL!

    Let's now take a look at a simplified version of the Makefile for this website. I only removed a few targets that were off-topic.

    -
    -
    PROJECT = ninenines
    -
    -DEPS = cowboy erlydtl
    -dep_cowboy_commit = 0.8.5
    -dep_erlydtl_commit = 4d0dc8fb
    -
    -.PHONY: release clean-release
    -
    -release: clean-release all projects
    -	relx -o rel/$(PROJECT)
    -
    -clean-release: clean-projects
    -	rm -rf rel/$(PROJECT)
    -
    -include erlang.mk
    +
    source-highlight: could not find a language definition for make

    You can see here how to define dependencies. First you list all the dependency names, then you have one line per dependency, giving the repository URL and the commit number, tag or branch you want.

    Then you can see two targets defined, with release becoming the default target, because it was defined first. You can override the default target all, which builds the application and its dependencies, this way.

    And as you can see, the release target uses Relx to build a release into the rel/ninenines/ directory. Let's take a look at the configuration file for this release.

    -
    @@ -143,6 +119,10 @@ cowboy-0.8.5 erlydtl-0.7.0 ninenines-0.2.0 stdlib-1.19.1
    +
  • Cowboy 2.7
  • + + +
  • Gun 2.0 pre-release 1
  • diff --git a/articles/erlanger-playbook-september-2015-update/index.html b/articles/erlanger-playbook-september-2015-update/index.html index df5b004e..e7d1743c 100644 --- a/articles/erlanger-playbook-september-2015-update/index.html +++ b/articles/erlanger-playbook-september-2015-update/index.html @@ -88,6 +88,10 @@ +
  • Cowboy 2.7
  • + + +
  • Gun 2.0 pre-release 1
  • diff --git a/articles/erlanger-playbook/index.html b/articles/erlanger-playbook/index.html index 4fc7b789..a8f75a66 100644 --- a/articles/erlanger-playbook/index.html +++ b/articles/erlanger-playbook/index.html @@ -129,6 +129,10 @@ +
  • Cowboy 2.7
  • + + +
  • Gun 2.0 pre-release 1
  • diff --git a/articles/farwest-funded/index.html b/articles/farwest-funded/index.html index 7562df58..60872050 100644 --- a/articles/farwest-funded/index.html +++ b/articles/farwest-funded/index.html @@ -89,6 +89,10 @@ +
  • Cowboy 2.7
  • + + +
  • Gun 2.0 pre-release 1
  • diff --git a/articles/gun-1.0.0-rc.1/index.html b/articles/gun-1.0.0-rc.1/index.html index 2cb142a3..b61ec20b 100644 --- a/articles/gun-1.0.0-rc.1/index.html +++ b/articles/gun-1.0.0-rc.1/index.html @@ -90,6 +90,10 @@ +
  • Cowboy 2.7
  • + + +
  • Gun 2.0 pre-release 1
  • diff --git a/articles/gun-1.0.0/index.html b/articles/gun-1.0.0/index.html index 7ce8fc0d..4145f9e3 100644 --- a/articles/gun-1.0.0/index.html +++ b/articles/gun-1.0.0/index.html @@ -89,6 +89,10 @@ +
  • Cowboy 2.7
  • + + +
  • Gun 2.0 pre-release 1
  • diff --git a/articles/gun-1.2.0/index.html b/articles/gun-1.2.0/index.html index 478457b7..bd5f1f18 100644 --- a/articles/gun-1.2.0/index.html +++ b/articles/gun-1.2.0/index.html @@ -89,6 +89,10 @@ +
  • Cowboy 2.7
  • + + +
  • Gun 2.0 pre-release 1
  • diff --git a/articles/gun-1.3.0/index.html b/articles/gun-1.3.0/index.html index 9c7a8510..260eddeb 100644 --- a/articles/gun-1.3.0/index.html +++ b/articles/gun-1.3.0/index.html @@ -87,6 +87,10 @@ +
  • Cowboy 2.7
  • + + +
  • Gun 2.0 pre-release 1
  • diff --git a/articles/gun-2.0.0-pre.1/index.html b/articles/gun-2.0.0-pre.1/index.html index ef68e267..2c98be20 100644 --- a/articles/gun-2.0.0-pre.1/index.html +++ b/articles/gun-2.0.0-pre.1/index.html @@ -94,6 +94,10 @@ +
  • Cowboy 2.7
  • + + +
  • Gun 2.0 pre-release 1
  • diff --git a/articles/index.html b/articles/index.html index 2668b7e9..3130a7c8 100644 --- a/articles/index.html +++ b/articles/index.html @@ -65,6 +65,23 @@

    Articles

    +
    +
    +

    Cowboy 2.7

    +

    + 2019 + 16 Oct +

    +
    + +

    Cowboy 2.7.0 has been released! +Cowboy 2.7 improves the HTTP/2 code with optimizations around the sending of DATA and WINDOW_UPDATE frames; graceful shutdown of the connection when the client is going away; and rate limiting mechanisms. New options and mechanisms have also been added to control the amount of memory Cowboy ends up using with both HTTP/1.1 and HTTP/2. Much of this work was done to address HTTP/2 CVEs about potential denial of service.

    + +

    + Read More +

    +
    +

    Gun 2.0 pre-release 1

    @@ -418,25 +435,6 @@ HTTP/2 support! Websocket compression! Much simpler, cleaner interface. No mor

    -
    -
    -

    Cowboy 2.0 release candidate 2

    -

    - 2017 - 23 Aug -

    -
    - -

    Cowboy 2.0.0-rc.2 has been released! -This is the new recommended version of Cowboy. Its API should not change before release. While you probably should not use it in production yet, many do successfully. Use at your own risk. -This new version contains fixes for the following issues: -HTTP/2 server push was using the wrong header compression context. HTTP/2 flow control could end up queueing data in the wrong order when resuming the sending of data.

    - -

    - Read More -

    -
    -