Pergunta

Quais as vantagens que qualquer oferta método para html, arquivos CSS e JavaScript servido por um servidor LAMP. Existem alternativas melhores?

O servidor fornece informações a um aplicativo de mapa usando JSON, portanto, um grande volume de arquivos pequenos.

Veja também existe algum desempenho hit envolvidos na escolha gzip sobre deflate para http compressão?

Foi útil?

Solução

Por que usar desinflar em vez de gzip para arquivos de texto servido pelo Apache?

A resposta simples é não .


RFC 2616 define desinflar como:

desinflar O formato "zlib" definido no RFC 1950, em combinação com o mecanismo de compressão "deflate" descrito na RFC 1951

O formato zlib é definido na RFC 1950 como:

     0   1
     +---+---+
     |CMF|FLG|   (more-->)
     +---+---+

       0   1   2   3
     +---+---+---+---+
     |     DICTID    |   (more-->)
     +---+---+---+---+

     +=====================+---+---+---+---+
     |...compressed data...|    ADLER32    |
     +=====================+---+---+---+---+

Assim, alguns cabeçalhos e um ADLER32 soma de verificação

RFC 2616 define gzip como:

gzip Um formato de codificação produzido pelo programa de compressão de arquivos "Gzip" (GNU zip) tal como descrito em [25] RFC 1952. Este formato é um Lempel-Ziv (LZ77) com um 32 bit CRC.

RFC 1952 define os dados comprimidos como:

O formato utiliza actualmente o método DEFLATE de compressão, mas pode ser facilmente estendido para usar outros métodos de compressão.

CRC-32 é mais lento do que ADLER32

Em comparação com uma verificação de redundância cíclica do mesmo comprimento, que comercializa fiabilidade para a velocidade (preferindo o último).

Então ... temos mecanismos 2 de compressão que usam o mesma algoritmo de compressão, mas a diferente algoritmo para cabeçalhos e soma de verificação.

Agora, os pacotes TCP subjacentes já estão bastante confiável , então a questão aqui não é Adler 32 vs CRC-32 que usos GZIP.


Acontece que muitos navegadores ao longo dos anos implementado um algoritmo deflate incorreta. Em vez de esperar o cabeçalho zlib no RFC 1950 eles simplesmente esperar a carga comprimida. Da mesma forma vários servidores web cometeu o mesmo erro.

Assim, ao longo dos anos navegadores começaram a implementar uma lógica fuzzy implementação deflate, eles tentam de cabeçalho zlib e Adler checksum, se isso falhar eles tentam de carga útil.

O resultado de ter lógica complexa como essa é que muitas vezes é quebrado. Verve Estúdio têm um usuário contribuiu seção de teste que mostram o quão ruim é a situação.

Por exemplo: obras deflacionar Safari 4.0, mas está quebrado no Safari 5.1, ele também sempre tem problemas no IE.


Assim, melhor coisa a fazer é evitar desinflar completamente, o aumento de velocidade menor (devido à Adler 32) não vale a pena o risco de cargas quebradas.

Outras dicas

GZip é simplesmente deflate além de uma soma de verificação e cabeçalho / rodapé. Deflate é noreferrer mais rápido, embora, como Eu aprendi da maneira mais difícil.

gzip vs gráfico deflate

Você provavelmente não são capazes de realmente escolher desinflar como uma opção. Ao contrário do que você pode esperar mod_deflate não está usando deflate mas gzip. Assim, enquanto a maioria dos pontos apresentados são válidos ele provavelmente não é relevante para a maioria.

Eu acho que não há grande diferença entre desinflar e gzip, porque gzip basicamente é apenas um cabeçalho envolvida em torno de desinflar (consulte RFC 1951 e 1952).

A principal razão é que deflate é mais rápido para codificar que o gzip e em um servidor ocupado que pode fazer a diferença. Com páginas estáticas é uma questão diferente, uma vez que pode facilmente ser pré-comprimido uma vez.

mod_deflate requer menos recursos em seu servidor, embora você pode pagar uma pequena penalização em termos da quantidade de compressão.

Se você está servindo muitos arquivos pequenos, eu recomendo benchmarking e carga testar suas soluções não comprimidos compactados e -. Você pode encontrar alguns casos em que a habilitação da compactação não vai resultar em economia

Não deve haver qualquer diferença no gzip e deflate para descompressão. Gzip é apenas desinflar com um cabeçalho dúzia byte poucos enrolada em volta dele, incluindo uma soma de verificação. A soma de verificação é a razão para a compressão mais lenta. No entanto, quando você está pré-compressão zilhões de arquivos que você quer que essas somas de verificação como uma verificação de sanidade em seu sistema de arquivos. Além disso, você pode utilizar as ferramentas de linha de comando para obter estatísticas sobre o arquivo. Para nosso site estamos pré-compressão de uma tonelada de dados estáticos (todo o diretório aberto, 13.000 jogos, autocomplete para milhões de palavras-chave, etc.) e são classificados de 95% mais rápido do que todos os sites de Alexa. Faxo Pesquisar . No entanto, nós utilizam uma casa cresceu servidor web proprietária. Apache / mod_deflate simplesmente não cortá-la. Quando esses arquivos são compactados para o sistema de arquivos não só você tomar uma batida para o seu arquivo com o tamanho do bloco mínimo sistema de arquivos, mas toda a sobrecarga desnecessária na gestão do arquivo no sistema de arquivos que o servidor poderia me importar menos sobre. Suas preocupações deve ser pegada total do disco e acesso / tempo de descompressão e velocidade secundariamente em ser capaz de obter esses dados pré-comprimida. A pegada é importante porque mesmo que o espaço em disco é barato você quer, tanto quanto possível para caber no cache.

No Ubuntu com Apache2 e o módulo deflate já instalado (que é o padrão), você pode ativar deflate gzip de compressão em dois passos simples:

a2enmod deflate
/etc/init.d/apache2 force-reload

E você está fora! Eu encontrei páginas que serviram sobre a minha conexão ADSL carregado muito mais rápido.

Editar:. Como por @ o comentário de GertvandenBerg, este permite a compactação gzip, não deflate

Se bem me lembro

  • gzip irá comprimir um pouco mais de deflate
  • deflate é mais eficiente
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top