aboutsummaryrefslogtreecommitdiffstats
path: root/src/cowboy.erl
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2011-05-05 14:03:39 +0200
committerLoïc Hoguin <[email protected]>2011-05-05 14:03:39 +0200
commit29e71cf4daec684c13047952a95ec0dc9540aad5 (patch)
tree0dfdca7886756c50cc03b25fd28fed183f409786 /src/cowboy.erl
parent6c1f73c53c9260d99f71676b400a27f0a853f584 (diff)
downloadcowboy-29e71cf4daec684c13047952a95ec0dc9540aad5.tar.gz
cowboy-29e71cf4daec684c13047952a95ec0dc9540aad5.tar.bz2
cowboy-29e71cf4daec684c13047952a95ec0dc9540aad5.zip
Switch the HTTP protocol to use binary packets instead of lists.
The server now does a single recv (or more, but only if needed) which is then sent to erlang:decode_packet/3 multiple times. Since most requests are smaller than the default MTU on many platforms, we benefit from this greatly. In the case of requests with a body, the server usually read at least part of the body on the first recv. This is bufferized properly and used when later retrieving the body. In the case of pipelined requests, we can end up reading many requests in a single recv, which are then handled properly using only the buffer containing the received data.
Diffstat (limited to 'src/cowboy.erl')
0 files changed, 0 insertions, 0 deletions