É um pedido HTTP que envia um Content-Length ou Transfer-Encoding com uma resposta Content 204 Nenhum quebrado?

StackOverflow https://stackoverflow.com/questions/912863

  •  06-09-2019
  •  | 
  •  

Pergunta

Eu não posso dizer a partir RFC 2616 se um cliente HTTP deve aceitar um 204 Nenhum conteúdo resposta que inclui conteúdo de Comprimento: 0 ou Transfer-Encoding: cabeçalhos fragmentada. Estes cabeçalhos parecem quebrar alguns clientes HTTP e proxies, que aparentemente tentam ler o corpo de resposta vazio, mas a especificação lê :

  1. Qualquer mensagem de resposta que "não deve" incluir uma mensagem-corpo (como o 1xx, 204, e 304 e respostas qualquer resposta a um pedido HEAD) é sempre terminada pela primeira vazia linha após os campos de cabeçalho, independentemente dos campos de entidade cabeçalho presente na mensagem.

Para mim "independentemente dos campos de entidade cabeçalho" implica que os clientes devem tolerar este estado de coisas. A biblioteca Erlang HTTP escolheu esta interpretação. No entanto, lighthttpd e IBM escolheu a interpretação oposta -. que o servidor não deve incluir esses cabeçalhos para respostas que são proibidos de ter corpos

Assim, deve a aplicação web remover os cabeçalhos da resposta, ou se a infraestrutura de rede e clientes tolerar esses cabeçalhos em 204 Nenhum conteúdo, 304 não modificado, etc.?

Foi útil?

Solução

De acordo com a RFC7230 (consulte http://tools.ietf.org /html/rfc7230#section-3.3.1 ) no final da página 29 ele afirma:

A MUST servidor não enviar um campo de cabeçalho Transfer-Encoding em qualquer resposta com um código de estado de 1xx (Informativa) ou 204 (n Conteúdo).

Por isso, a aplicação web não devem enviar os cabeçalhos com a resposta.

Outras dicas

Eu não posso te dizer o que é correto, em que eu não sei o protocolo HTTP na esse detalhe.

No entanto, você tem que perguntar-se:

  1. Posso alterar o meu pedido para remover esses cabeçalhos?
  2. ou posso mudar os consumidores do meu aplicativo para ignorar esses cabeçalhos?

Na minha opinião, a aplicação não deve enviar os cabeçalhos nesse caso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top