Por que a resposta HTTP é dividida em 2 partes: cabeçalho e corpo?

1

Estou tentando entender por que uma única resposta HTTP é dividida em duas partes na seguinte configuração:

  • O recurso solicitado é protegido pela Autenticação de resumo HTTP em lado do servidor.
  • A comunicação é realizada usando o TLS 1.0.

Quando o cliente solicita um recurso, a resposta do servidor é dividida em duas partes: a primeira parte (depois da descriptografia) contém apenas cabeçalhos HTTP (além de outros):

Content-Length: 1297
e
WWW-Authenticate: ...
Segunda parte contém a mensagem do corpo.

A coisa mais importante: essa primeira parte contendo apenas cabeçalhos é enviada com o flag PSH, o que faz com que meu aplicativo lance uma exceção porque Content-Length é & gt ; 0 mas não há mensagem do corpo. O último pacote da segunda parte não tem bandeira PSH.

Esse comportamento do servidor está correto?     
por Paul 12.04.2014 / 15:03

1 resposta

2

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.

    
por 12.04.2014 / 16:51

Tags