IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

compression de réponse, ob_gzhandler et autres


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    dev
    Inscrit en
    Juin 2003
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Juin 2003
    Messages : 57
    Points : 130
    Points
    130
    Par défaut compression de réponse, ob_gzhandler et autres
    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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    //header("Content-Encoding: gzip");
    echo gzencode($reponse, 9, FORCE_GZIP);
    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.


    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
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/09/2014, 11h16
  2. RechercheV à plusieurs réponse dans un autre onglet
    Par Harrisson dans le forum Excel
    Réponses: 6
    Dernier message: 17/08/2012, 10h33
  3. compression de la réponse
    Par Mengué georges dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 15/11/2007, 12h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo