input buffer should always be nullified upon disposal
[wip] create pull interface
[refactor] do not allocate memory within flatten_headers
[wip] switch http1 protocol to prefer the pull interface
[wip][http] flatten the arguments to socket write