25

Nov

Guia(3) - O poder da compressão

Escrito por Gonçalo Martins   


poder da compressãoA compressão é uma das mais rápidas formas de acelerar o seu website. Até à uns anos atrás a compressão na web não era suportada pelos browsers (IE 5 -), no entanto esta realidade mudou, felizmente. Sites como o Google e o Yahoo utilizam esta técnica para acelerarem os seus websites.

 

O que é isto de compressão?

Quando você acede a uma página de internet o seu browser realiza um pedido HTTP, e recebe uma resposta, caso o servidor se encontre online!

O pedido HTTP é algo do género:

 

 

 

1. Browser: GET /index.php;
2. Servidor: Vou ver se aqui tenho isso;
3. Servidor: Está aqui (200OK), vou enviar;
4. Browser: 100KB... a descarregar, espera, já está!.


Qual é o problema?

O servidor está a servir o PHP sem que este esteja comprimido. E quer seja .html, ou .php, o potencial de compressão é enorme! Porque não serve o servidor uma versão em zip?

1. Porque o servidor não está configurado para tál!
2. Porque o Browser não pede por componentes em GZIP!

 

Pedido HTTP por componentes comprimidos:

 

pedido http comprimido

 


1. Browser: GET /index.php, e se tiveres ai em gzip manda!
2. Servidor: Vou ver se aqui tenho isso, sim encontrei! Preferes em gzip? ok!
3. Servidor: Estou a comprimir para te mandar isso!
4. Browser: 10KB... Já cá está!

Ficheiro mais pequeno = download mais rápido!

Um exemplo é o HTML do weblouca.com que possui cerca de 70KB descomprimido! E cerca de 15KB comprimido!

 

Resumindo:

O browser envia um header:
Accept-Encoding: gzip, deflate
O Servidor envia a resposta de que está a servir o conteúdo comprimido: Content-Encoding: gzip

Se o servidor, não envia o Content-enconding: gzip, significa que não está a servir o conteúdo comprimido, e atenção que isto é extremamente comum em muitos servidores!

 

Como configurar o servidor?

 

Ora bem, se o servidor não está a servir o seu conteúdo comprimido, embora o seu browser esteja a aceitar conteúdo em gzip! A solução passa por editar o ficheiro .Htaccess

e adicionar as seguintes linhas:

htaccess
  1. <FilesMatch "\.(php|html?)$">
  2. php_value zlib.output_compression 4096
  3. </FilesMatch>

 

A solução anterior activa a compressão via PHP.

Uma outra solução passa por adicionar as linhas que se seguem ao invés das anteriores:

htaccess
  1. <FilesMatch "\.(php|html?)$">
  2. SetOutputFilter DEFLATE
  3. </FilesMatch>

 

Se não possui acesso ao ficheiro .Htaccess no seu servidor, adicione a seguinte linha ao inicio do seu index.php

php
  1. <?php if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip'))
  2. ob_start("ob_gzhandler");
  3. else ob_start();
  4. ?>


Verifique se o seu site está a ser servido comprimido, com uma das seguintes ferramentas:

No Browser: HTTP Headers, procure por "content-encoding:gzip";
Online: GIDZipTest;

 


  • 10 - Pré-Loading, o que é, como utilizar?;
  • 11 - Atrase o load de ficheiros (Pós-Loading);
  • 12 - PHP Flush, como e porque?;
  • 13 - Use links da maneira correcta;
  • 14 - ETags, quando podem ou não ser uteis!;
  • 15 - Publicidade, uma forma de matar a performance! Soluções?;
  • 16 - Javascript o porque do Google APIS / YUI;
  • 17 - Google Analytics - Aumente o desempenho;
  • 18 - Exemplo prático de implementação;



Gostou deste Artigo?
Subscreva o feed RSS ou reguiste-se na Newsletter do WebLouca, agora!
Categoria:
Se preferir, pode ainda deixar um comentário

PATROCINADORES


cometarios
Trackback(0)
Estevao
Dezembro 11, 2008
http://www.laststroke.com

Espectaculo. Optimo artigo. vou ja fazer isto nos meus sites.


Escreva o seu Comentario
 
  pequeno | maior
 

busy
 

Patrocinadores do Site

Subscrever Feed



Artigos

Ultimos artigos
jsimageNeste artigo vou-lhe demonstrar como rodar imagens e qualquer elemento desde div a span co...
phpthumbAtualmente praticamente todos os websites possuem a necessidade de listar os seus artigos...
benchmarksA pouco mais de um ano falei sobre uma ferramenta para otimizar imagens (Artigos/optimize...
phpimageredRedimensionar uma imagem com php pode ser um processo complicado. Quando por exemplo um wo...
linksafiliadosNo inicio do ano escrevi um artigo onde dáva a conhecer uma forma de criar links de afili...