Problema com “Transfer-Encoding: chunked” no Apache 2.2

1

Um cliente do nosso serviço da web usa o aplicativo axis2 que envia a consulta HTTP 1.1 com:

Transfer-Encoding: chunked

cabeçalho. Tal consulta é recusada pelo nosso Apache 2.2 com mensagem:

<title>411 Length Required</title>
</head><body>
<h1>Length Required</h1>
<p>A request of the requested method POST requires a valid Content-length.<br />

Nos logs do Apache, há:

[Mon May 17 09:06:04 2010] [error] [client 127.0.0.1] chunked Transfer-Encoding forbidden: /app/webservices/soap.hdb

Quando eu enviar essa mensagem sem Transfer-Encoding: chunked e com Content-Length , tudo funciona ok. Pesquisei como resolver esse problema, mas descobri apenas como desativar Transfer-Encoding: chunked no lado do cliente.

Como cliente usei soapUI onde adicionei / removi Transfer-Encoding: chunked header (quando adicionei este headerUIUI não envio Content-Length header). Como servidor eu uso: Apache / 2.2.3 no CentOS, mas testei também com a instalação "nova" do Apache 2.2.15 no Windows.

Existe alguma maneira de ativar consultas em bloco no lado do servidor?

    
por Michał Niklas 17.05.2010 / 09:10

2 respostas

1

do que eu encontrei no site do apache, chunking é suportado apenas pelo HTTP / 1.1, talvez seu servidor ou software esteja configurado para HTTP / 1.0 na configuração. link

diferente disso, eu olharia o arquivo indicado na mensagem de erro e veria se há alguma sugestão de fragmentação acontecendo lá. {DocumentRoot}/app/webservices/soap.hdb

    
por 17.05.2010 / 10:04
0

Você pode desabilitar / habilitar o uso de chutes em axis2.xml

Chuncking significa que, embora a transferência do tamanho total seja desconhecida, isso é útil quando o conteúdo dinâmico é gerado.

Dicas:

O HTTP 1.0 não suporta codificação de bits.

    
por 21.05.2010 / 03:31