for every request we allocate a buffer to read the body. in most cases the request (say for get) will be very small, but we
always allocate a new buffer to store the request.
There should be a way to improve the buffer handling here. In particular it seems that if we have a buffer of reasonable
length (1k) preallocated we could use this to service all requests <= 1k and only allocate when requests are larger. seems
like this would handle a large fraction of the requests we typically see (except for large sets for example)