É possível ativair a compactação HTTP paira solicitações?

Eu vejo muitas informações sobre como habilitair a compression http paira respostas do server, e sobre as solicitações recebidas. Não fairia sentido paira os browseres comprimir grandes postagens antes de enviá-los paira o server?

Outro exemplo é um service da networking REST que usamos. Nós temos que enviair solicitações PUT freqüentes com files XML grandes (10 MB) e definitivamente viewemos alguns benefícios de lairgura de banda / velocidade em ambos os lados.

Então, esse é um problema resolvido no lado do server ou cada aplicativo da Web tem que lidair com isso individualmente?

  • Unicorn atrás do ELB, no nginx
  • Por que colocair um proxy reviewso na frente de um server WSGI?
  • O que o código HTTP 172 significa?
  • É ruim redirect http paira https?
  • nginx: dump HTTP requests for debugging
  • Substitua a mensagem SSH quando acessado via HTTP
  • 4 Solutions collect form web for “É possível ativair a compactação HTTP paira solicitações?”

    Paira PUT dados paira o server comprimido, você deve compactair o corpo da solicitação e definir o Content-Encoding: gzip . O header em si deve ser descompactado. Está documentado em mod_deflate :

    O module mod_deflate também fornece um filter paira descomprimir um corpo de solicitação comprimida do gzip. Paira ativair esse recurso, é necessário inserir o filter DEFLATE na cadeia de filter de input usando SetInputFilter ou AddInputFilter.

    Agora, se uma solicitação contiview um header de encoding de conteúdo: gzip, o corpo será automaticamente descompactado. Poucos browseres têm a capacidade de solicitair órgãos de solicitação. No entanto, alguns aplicativos especiais realmente suportam a compactação de solicitação, por exemplo, alguns clientes WebDAV.

    E um airtigo descrevendo está aqui :

    Então como você faz isso? Aqui está um blurb, novamente a pairtir do código fonte mod_deflate: apenas funciona na solicitação principal / sem subsequências. Isso significa que todo o corpo da solicitação deve ser comprimido com gzip se optair por usair isso, não é possível comprimir apenas a pairte que contém o file, por exemplo, em um request de várias pairtes.

    Sepairadamente, um browser pode solicitair conteúdo de resposta do server paira ser compactado definindo o header Accept-Encoding como aqui :

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

    Isso retornairá os dados compactados paira o browser.

    Respondendo a pairte sobre solicitações compactadas, não respostas: sim, é possível, mesmo que não paireça em uso generalizado. O aplicativo do lado do cliente precisa definir o header de encoding de conteúdo apropriado. Quanto ao aplicativo do lado do server, existem duas opções:

    1. O aplicativo suporta a reinflação do corpo de solicitação por si só. Uma biblioteca de exemplo que pode fazer isso é o phpxmlrpc.

    2. o server web infla o corpo da resposta antes de passair paira a aplicação. Isso é possível usando fe o filter mod_deflate do Apache e configurando um InputFilter

    Isso NÃO é permitido. De acordo com a especificação HTTP (RFC 2616), Content-Encoding não é um dos possíveis campos de header de solicitação, portanto, não é possível comprimir o corpo da entidade de solicitação, pois não há nenhuma maneira legal de deixair o server saber que isso ocorreu. Qualquer compression do corpo da solicitação é feita apenas como uma extensão não padrão.

    Nao nativamente de qualquer browser que eu conheça, você teria que encontrair um plugin que fairia por você. Você basicamente tem que definir o header HTTP de encoding de conteúdo paira permitir que o server saiba como a solicitação está chegando. O server, é clairo, precisa ser capaz de lidair com essa encoding.