I think the reason is that per request data in http2 can be seperated by byte and then assembled into a new binary protocol layer before being sent. By contrast the http1.1 request data is a complete whole, which cannot be seperated and must be transfered from start to end.