A 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:
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 <FilesMatch "\.(php|html?)$"> php_value zlib.output_compression 4096 </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 <FilesMatch "\.(php|html?)$"> SetOutputFilter DEFLATE </FilesMatch>
Se não possui acesso ao ficheiro .Htaccess no seu servidor, adicione a seguinte linha ao inicio do seu index.php php <?php if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')) ob_start("ob_gzhandler"); else ob_start(); ?>
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
Trackback(0)
 |
Dezembro 11, 2008
http://www.laststroke.com