Compression php_flag


arnaudmn
WRInaute passionné
WRInaute passionné
 
Messages: 1542
Inscription: 11 Mai 2005

Compression php_flag

Message le Mar Mai 08, 2007 9:48

Bonjour,

Pour limiter la taille des pages, et donc pour accélérer les chargements, on peut mettre dans le fichier .htaccess :
<FilesMatch "\.(php|html?)$">
php_flag zlib.output_compression On
</FilesMatch>

Avec IE, j'ai vu que ça fonctionne pas (supporte pas ce mode !). Avec Firefox, ça semble OK.
Mais avec les robots, ça va faire quoi ? Ou avec d'autres navigateurs ? Y'a un risque que ma page ne soit plus visible par tout le monde si je met ça ?


julienr
WRInaute impliqué
WRInaute impliqué
 
Messages: 913
Inscription: 5 Aoû 2003

Re: Compression php_flag

Message le Mar Mai 08, 2007 10:50

arnaudmn a écrit:Avec IE, j'ai vu que ça fonctionne pas (supporte pas ce mode !)

ca me parait malheuresement une bonne raison de l'oublier :(
(avec plus de 50% d'utilisation d'ie6 par les internautes)


arnaudmn
WRInaute passionné
WRInaute passionné
 
Messages: 1542
Inscription: 11 Mai 2005

Re: Compression php_flag

Message le Mar Mai 08, 2007 11:01

julienr a écrit:ca me parait malheuresement une bonne raison de l'oublier :(


Et en plus, ça a pas eu l'air de fonctionner chez ovh 8O
A la place, j'ai ajouté :
Code: Tout sélectionner
ob_start("ob_gzhandler");

en début des pages. Et là, ça semble réduire la taille des pages, donc chargement plus rapide (et ça fonctionne aussi avec IE)


julienr
WRInaute impliqué
WRInaute impliqué
 
Messages: 913
Inscription: 5 Aoû 2003

Message le Mar Mai 08, 2007 11:56

oui à en lire la doc, ca marche aussi avec IE parce que dans ce cas il ne compresse pas la page.

l'autre solution peut être aussi de le faire au niveau serveur (pas besoin de toucher au php) avec le mod deflate d'apache2.
avec une config comme celle ci les différents cas sont traités :

httpd.apache.org/docs/2.0/mod/mod_deflate.html#recommended a écrit: <Location />
# Insert filter
SetOutputFilter DEFLATE

# Netscape 4.x has some problems...
BrowserMatch ^Mozilla/4 gzip-only-text/html

# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip

# MSIE masquerades as Netscape, but it is fine
# BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

# NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48
# the above regex won't work. You can use the following
# workaround to get the desired effect:
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

# Don't compress images
SetEnvIfNoCase Request_URI \
\.(?:gif|jpe?g|png)$ no-gzip dont-vary

# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
</Location>


arnaudmn
WRInaute passionné
WRInaute passionné
 
Messages: 1542
Inscription: 11 Mai 2005

Message le Mar Mai 08, 2007 12:01

julienr a écrit:oui à en lire la doc, ca marche aussi avec IE parce que dans ce cas il ne compresse pas la page.


Ben ..... si. Du moment que le navigateur envoi gzip dans l'en-tête accept_encoding, la page est compressée.
Voir -www.whatsmyip.org/mod_gzip_test


julienr
WRInaute impliqué
WRInaute impliqué
 
Messages: 913
Inscription: 5 Aoû 2003

Message le Mar Mai 08, 2007 13:06

ok IE >= 5.0 envoi l'entête gzip

http://fr3.php.net/zlib a écrit:les pages sont compressées si le navigateur envoie un en-tête "Accept-Encoding: gzip" ou "deflate". Les en-têtes "Content-Encoding: gzip" (respectivement "deflate") et "Vary: Accept-Encoding" sont ajoutés dans la page envoyée au navigateur.


bizzare car zlib.output_compression devrait d'après ce qui est dit au dessus fonctionner pareil.

http://fr3.php.net/manual/fr/function.ob-gzhandler.php a écrit:Note: Vous ne pouvez pas utiliser simultanément ob_gzhandler() et zlib.output_compression. De plus, notez bien que zlib.output_compression est préférable à ob_gzhandler().


en tout cas merci pour l'info


julienr
WRInaute impliqué
WRInaute impliqué
 
Messages: 913
Inscription: 5 Aoû 2003

Re: Compression php_flag

Message le Jeu Mai 10, 2007 9:21

arnaudmn a écrit:A la place, j'ai ajouté :
Code: Tout sélectionner
ob_start("ob_gzhandler");

en début des pages. Et là, ça semble réduire la taille des pages, donc chargement plus rapide (et ça fonctionne aussi avec IE)


j'ai placé ce code sur une page pour tester le gain (d'ailleur faut il un ob_end_flush(); à la fin de la page ?) et impossible de constater que l'entête qui dit que c'est compressé, est présente :-(
pour cela j'utilise wget -S

comment être sur que cela marche ?


julienr
WRInaute impliqué
WRInaute impliqué
 
Messages: 913
Inscription: 5 Aoû 2003

Message le Jeu Mai 17, 2007 22:04

bon je me répond :D
en fiate, il faut préciser :
wget -S --header='Accept-Encoding: gzip,deflate' http://www.toto.fr/titi.html
et pas besoin de ob_end_flush()
j'ai constaté qu'en moyenne les pages gagnait près de 80% de poids
maintenant sur un serveur chargé que donne cette méthode ou quel pourcentage de cpu en plus ?

jarreweb
WRInaute discret
WRInaute discret
 
Messages: 192
Inscription: 12 Sep 2003

Message le Ven Mai 18, 2007 13:45

comme indiqué dans la doc, si le client ne supporte pas les pages compressées, le serveur enverra une page non compressée
donc aucun souci avec les moteurs de recherche


julienr
WRInaute impliqué
WRInaute impliqué
 
Messages: 913
Inscription: 5 Aoû 2003

Message le Ven Mai 18, 2007 14:18

google accepte le mod gzip


mikaweb
WRInaute discret
WRInaute discret
 
Messages: 208
Inscription: 4 Juil 2007

Re: Compression php_flag

Message le Mer Avr 29, 2009 19:30

Désolé de déterre ce topic mais c'est assez intéressant.
En gros, si on a Apache 2 on utilise le mode Deflate et si c'est pas possible, un petit coup de ob_start("ob_gzhandler");

Peut-on mettre les deux ensemble sur un serveur avec Apache 2 ?
J'ai déjà eu des petits soucis avec Infomaniak et mon .htaccess modifié, j'ai vraiment mis un max de conditions et il m'a affiché une belle erreur 500 je crois.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités