Seu aplicativo provavelmente não está ciente de que o TCP é um protocolo baseado em fluxo e não em pacote. Não há garantia de que você obtenha o cabeçalho e o corpo juntos em um único pacote, não há garantia de que você obtenha todo o cabeçalho dentro de um único pacote.
Além disso, a resposta contém partes importantes: o conteúdo e as informações sobre o conteúdo (tipo, duração, última alteração ...). Existem várias maneiras de distinguir entre essas partes e de dividi-lo em um cabeçalho contendo as meta informações e o corpo que contém o conteúdo.