Bonjour,

sur opquast ils conseillent de préciser les http-equiv ETag, Date et Last-Modified pour gérer la mise en cache du site.

Tout premièrement, même après recherche sur google je n'ai rien trouvé d'intéressant sur les ETag, à quoi cela fonctionne réellement, et quel attribut content doit on renseigner.

Pour la Date et Last-Modified je n'ai pas vraiment de problème, sauf que mon serveur est en GMT+2 (et qu'il faut des dates en GMT, mais bon c'est un problème que je dois régler en php, ce n'est pas le sujet).

Alors, y a t il vraiment un intéret à mettre en cache mes pages web étant donné qu'elles sont dynamiques (mis à part le header et footer qui changent rarement) et que les textes affichés sont valables un jour tout au plus.

Sachant également que la gestion de la mise en cache des images, css, et autres fichiers externes (javascripts) n'est pas gérée par ces http-equiv (à moins que je me trompe).

Voilà, c'était juste pour savoir si je devais vraiment m'embêter à rendre mes pages "cacheable" comme il est préconisé sur opquast, ou si cela n'en valait pas las peine.


Merci.
Modifié par Rasta31 (03 Aug 2007 - 17:00)
Hello,

Un petit lien vers un billet (en anglais) à ce sujet : http://simonwillison.net/2003/Apr/23/conditionalGet/
Rasta31 a écrit :
Alors, y a t il vraiment un intéret à mettre en cache mes pages web étant donné qu'elles sont dynamiques (mis à part le header et footer qui changent rarement) et que les textes affichés sont valables un jour tout au plus.

A toi de décider, sans doute. Smiley smile
Rasta31 a écrit :
Sachant également que la gestion de la mise en cache des images, css, et autres fichiers externes (javascripts) n'est pas gérée par ces http-equiv (à moins que je me trompe).

Oui, tu te trompes. Smiley cligne

Par exemple, Apache utilise Last-Modified et ETag pour les ressources statiques.
function doConditionalGet($timestamp) {
    // A PHP implementation of conditional get, see 
    //    http://fishbowl.pastiche.org/archives/001132.html
 
    $last_modified = substr(date('r', $timestamp), 0, -5).'GMT';
    $etag = '"'.md5($last_modified).'"';
    // Send the headers
    header("Last-Modified: $last_modified");
    header("ETag: $etag");
    // See if the client has provided the required headers
    $if_modified_since = isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) ?
        stripslashes($_SERVER['HTTP_IF_MODIFIED_SINCE']) :
        false;
    $if_none_match = isset($_SERVER['HTTP_IF_NONE_MATCH']) ?
        stripslashes($_SERVER['HTTP_IF_NONE_MATCH']) : 
        false;
    if (!$if_modified_since && !$if_none_match) {
        return;
    }
    // At least one of the headers is there - check them
    if ($if_none_match && $if_none_match != $etag) {
        return; // etag is there but doesn't match
    }
    if ($if_modified_since && $if_modified_since != $last_modified) {
        return; // if-modified-since is there but doesn't match
    }
    // Nothing has changed since their last request - serve a 304 and exit
    header('HTTP/1.0 304 Not Modified');
    exit;


pas mal comme code, par contre ya un truc que je comprend pas, pourquoi il encode le ETag en md5 ?
Rasta31 a écrit :
pas mal comme code, par contre ya un truc que je comprend pas, pourquoi il encode le ETag en md5 ?

J'imagine que c'est plus facile à comparer et que ça évite les problèmes de longueur ou de caractères spéciaux.
ok, c'est vrai que c'est pas bête.

Ben je vais essayer de me débrouiller avec ça.

Merci pour ton aide.