A requisição HTTP PUT está compactada se eu estiver usando mod_deflate ou gzip no apache?

2

Estou recebendo arquivos xml no meu servidor usando a solicitação HTTP PUT. É comprimido durante a transferência se o meu Apache estiver configurado com mod_deflate? Como posso verificar se é compressa? Se não, como posso forçar a compressão?

Obrigado!

    
por benjisail 18.02.2010 / 14:41

2 respostas

2

De acordo com minha resposta anterior :

Um navegador solicita que o conteúdo seja compactado, definindo o cabeçalho Accept-Encoding de acordo com aqui

GET /index.html HTTP/1.1
Host: www.http-compression.com
Accept-Encoding: gzip
User-Agent: Firefox/1.0

Isso retornará dados compactados ao navegador. No entanto, para PUT dados para o servidor compactado, você deve compactar a solicitação inteira, inclusive do cabeçalho. Está documentado em mod_deflate :

The mod_deflate module also provides a filter for decompressing a gzip compressed request body. In order to activate this feature you have to insert the DEFLATE filter into the input filter chain using SetInputFilter or AddInputFilter.

...

Now if a request contains a Content-Encoding: gzip header, the body will be automatically decompressed. Few browsers have the ability to gzip request bodies. However, some special applications actually do support request compression, for instance some WebDAV clients.

E um artigo descrevendo é aqui :

So how do you do it? Here is a blurb, again from the mod_deflate source code: only work on main request/no subrequests. This means that the whole body of the request must be gzip compressed if we chose to use this, it is not possible to compress only the part containing the file for example in a multipart request.

    
por 18.02.2010 / 17:15
3

O mod_deflate é usado quando o apache envia dados, não quando recebe.

A coisa é que o navegador envia dados para o servidor web antes de ter qualquer conhecimento do que ele suporta, assim, ele não pode compactar dados, sem saber se o servidor será capaz de lidar com isso.

Se você realmente precisa de um uso de largura de banda menor, deve compactar os arquivos xml antes de enviá-los e descompactá-los no seu aplicativo.

    
por 18.02.2010 / 15:10