Sim, o HTTP / 1.x não inclui nenhum mecanismo de remontagem / devolução de pacotes. Ele espera que a camada de transporte (normalmente TCP ou QUIC) o forneça, como visto em RFC 7230, seção 6 :
6. Connection Management
HTTP messaging is independent of the underlying transport- or session-layer connection protocol(s). HTTP only presumes a reliable transport with in-order delivery of requests and the corresponding in-order delivery of responses.
Dito isto, o HTTP / 1.x inclui mecanismos opcionais para identificar quando uma resposta é completa . Isso é necessário porque o HTTP / 1.x suporta a reutilização da conexão e a mesma conexão TCP subjacente pode ser usada para vários pares de solicitação / resposta. (E, claro, o TCP não tem noção de mensagens separadas.)
Clientes usando "Conexão: fechar" (padrão em HTTP / 1.0) podem simplesmente assumir que uma conexão TCP bem fechada indica o fim da resposta. No entanto, os clientes que usam "Connection: keep-alive" (padrão em HTTP / 1.1) esperam que a resposta tenha
- um cabeçalho "Content-Length:" se o tamanho da resposta for definido e conhecido, ou
- um pedaço de comprimento zero se a resposta for de tamanho indeterminado e usar "Transfer-Encoding: chunked".
O mesmo ainda acontece com o HTTP / 2 sobre o TCP e até com o HTTP sobre o QUIC.