Bonjour,
Ce matin je me suis rendu compte que la compression des appels à certaines de mes pages ne fonctionnait plus.
J'ai les mêmes réactions sur ma machine de dev(wampserver) ainsi qu'en prod (IIS)
voici sommairement le code que j'utilisai (et qui fonctionnait) jusque la :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 $reponse = "abcdefghabcdefghabcdefghabcdefghabcdefghabcdefghabcdefghabcdefghabcdefghabcdefgh abcdefghabcdefghabcdefghabcdefghabcdefghabcdefghabcdefghabcdefghabcdefghabcdefg [...]"; if(function_exists('ob_gzhandler')) { ob_start('ob_gzhandler'); } else { ob_start(); } echo $reponse; ob_end_flush();
Sur les deux machines je n'ai aucun message d'erreur, function_exists('ob_gzhandler') renvoit bien true.
Le résultat est bien affiché correctement dans le navigateur, par contre si je vais consulter les paramètres de l'appel avec les outils de développement de Firefox ou Chrome, il n'y est fait aucune mention de compression :
- il n'y a pas de Content-Encoding:gzip
- La taille "transférée" est égale a la taille "décompressée" (ce qui n'était pas le cas avant)
J'ai commencé à bidouiller pour trouver la source de ce problème, et j'ai utilisé une méthode de compression alternative :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 header("Content-Encoding: gzip"); echo gzencode($reponse, 9, FORCE_GZIP);
Le résultat est identique à celui décrit précédemment.
La ou je ne comprend plus , c'est que si je commente la première ligne de cette seconde méthode :
le navigateur reçoit bien une réponse illisible, et bien plus petite que précédemment, ce qui me laisse croire que le gzencode fonctionne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 //header("Content-Encoding: gzip"); echo gzencode($reponse, 9, FORCE_GZIP);
par contre si je décommente "header("Content-Encoding: gzip")", alors les données reçues font bien la même taille (à 2 octets près) que si j'avais simplement fait uniquement un "echo $response";
Cerise sur le gâteau, si je vais consulter un site permettant de vérifier si les pages sont compréssées (par ex https://varvy.com/tools/gzip/) :
avec la première ou la seconde méthode, il me répond que ma réponse est compressée ...
Par contre en utilisant fiddler, la taille des réponses affichées sont identiques à la taille affichée par Firefox ou Chrome ( c'est à dire non compressée).
Qui dois-je croire ? mes réponses sont elles compressées ?
Si il n'y a pas de compression, ou est mon erreur ?
(le script d'exemple est en PJ)
Merci d'avance
Partager