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

Serveurs (Apache, IIS,...) Discussion :

Mettre en cache les fichiers statiques


Sujet :

Serveurs (Apache, IIS,...)

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Mai 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2015
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Mettre en cache les fichiers statiques
    Bonjour,

    je souhaite vos lumières car je n'arrive pas à mettre en place un système de mise en cache, car je suis sûr que ça m'apporterais un gain de performance pour la petite application WEB métier que je maintiens. (en mettant en cache côté navigateur les scripts javascript openlayers.js, jquery.js, mes fonctions persos, les feuilles de styles et les images).
    voilà ma démarche de test :

    déjà la config de mon serveur via un phpinfo()
    Apache Version Apache/2.2.22 (Debian)
    Apache API Version 20051115

    j'ai lancé les commandes suivantes pour activer
    sudo a2enmod expires
    sudo a2enmod headers
    service apache2 restart


    je relance vérifie si les modules sont bien chargés toujours avec un phpinfo()
    Loaded Modules core mod_log_config mod_logio mod_version prefork http_core mod_so mod_alias mod_auth_basic mod_authn_file mod_authz_default mod_authz_groupfile mod_authz_host mod_authz_user mod_autoindex mod_cgi mod_deflate mod_dir mod_env mod_expires mod_headers mod_mime mod_negotiation mod_php5 mod_reqtimeout mod_rewrite mod_setenvif mod_status

    donc c'est ok
    Ensuite j'ai crée un fichier .htaccess à la racine du site pour appliquer une règle de cache sur mes feuilles de styles
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <IfModule mod_expires.c>
        ExpiresActive on
        ExpiresDefault "access plus 1 month"
        ExpiresByType text/css A172800
    </IfModule>
    et là je vérifie les transactions effectuées avec firebug, cependant le navigateur demande systématiquement les fichiers au serveur, requête status 200 et jamais 304. Pourtant dans le champs d'expiration est bien donnée dans la requête par le serveur.
    Je n'actualise pas la page avec F5, j'ai fait une page html simple qui charge un fichier .css sur le serveur et un lien href qui relance la page quand je le clique.

    Réponse
    Accept-Ranges
    bytes
    Cache-Control
    max-age=172800
    Connection
    Keep-Alive
    Content-Encoding
    gzip
    Content-Length
    262
    Content-Type
    text/css
    Date
    Sun, 07 Feb 2016 13:26:56 GMT
    Etag
    "28191-1ec-52b2df98e6c27"
    Expires
    Tue, 09 Feb 2016 13:26:56 GMT

    Keep-Alive
    timeout=5, max=99
    Last-Modified
    Sun, 07 Feb 2016 13:22:23 GMT

    Server
    Apache/2.2.22 (Debian)
    Vary
    Accept-Encoding
    Requête
    Accept
    text/css,*/*;q=0.1
    Accept-Encoding
    gzip, deflate
    Accept-Language
    fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3
    Connection
    keep-alive
    Host
    192.168.1.66:8081
    Referer
    http://192.168.1.66:8081/test/test.html
    User-Agent
    Mozilla/5.0 (Windows NT 6.3; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0
    J'ai testé d'autres configuration en vain
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <IfModule mod_expires.c>
      <FilesMatch "\.(jpg|gif|png|pdf|css|js)$">
        ExpiresActive On
        ExpiresDefault "access plus 1 month"
        Header set Cache-Control "max-age=604800, public"
      </FilesMatch>
    </IfModule>  
    FileETag none
    Grand snif
    Je ne comprend pas pourquoi mon navigateur (Firefox), ne tient pas compte de la configuration... je n'ai pas trouvé de solution.

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    je ne saisie pas le problème les données étant misent en cache par défaut dans les navigateurs.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Mai 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2015
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    En fait si je passe 10 fois sur la même page, le navigateur redemande 10 fois au serveur mes fichiers javascript, css et image annexe sans utiliser son cache... je souhaiterais optimiser l'échange en n'envoyant au navigateur que le code de la page lui dynamique (généré en php) : je le vois en surveillant l'échange entre le serveur et le client, du coup j'en conclu que le cache du navigateur n'est pas utilisé... c'est fort dommage dans mon cas d'utilisation.
    J'ai lu beaucoup de forum et survolé la doc apache sur le sujet et je n'ai pas trouvé de solution.
    Mes modules son bien activés, les entêtes des requêtes ont l'air bonne puisque le Expires a été défini...
    Pourtant je n'arrive pas à obtenir de requête 304 (le saint graal que j'ai cherché tout le week end) pour les .js css et images... si la page a été déjà visité.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Par défaut
    Bonjour,

    les indications présentes sur cette page Apache ne suffisent pas ?
    Christophe

    Pensez à mettre quand c'est le cas.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Mai 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2015
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Merci de ton intérêt en me postant ce lien, mais j'ai déjà lu et tenté qlqs config avec me basant sur cette doc ce week-end sans succès.
    Avec les débits que l'on a aujourd'hui "j'ai l'impression" que plus personne ne s'intéresse au cache, tout les posts date et leur démarche "ne fonctionne plus" à priori. Je met des guillemets car ce sont mes observations.
    C'est dommage, pour moi c'est un point intéressant pour une appli web nomade en milieu rural pour une saisie terrain (donc pas un bon débit) et j'ai toujours pas de piste.
    Mon but est de ne pas avoir à triturer les options du navigateur client, mais que le navigateur tienne en compte la config Expires et de mise en cache envoyé par le serveur lors de ses requêtes aux médias. J'ai l'impression que le navigateur d'aujourd'hui n'en tient plus compte??, dans mon premier post j'ai listé le résultat obtenu avec la config (que l'on peut trouver un peu partout sur le net comme exemple simple).

    NoSmoking me dit " les données étant misent en cache par défaut dans les navigateurs."
    Mais si tu observes pour faire simple avec firebug ou webdevelopper tes échanges, tu verras que le navigateur n’utilise pas le cache mais redemande systématiquement les médias. Pourtant il y a bien les etags... et moi j'ai ajouté les Expires. J'en conclu qu'il le fais très mal lol.

    N'ayant toujours aucune piste si qlq'un a une expérience a partagé sur le sujet je suis preneur!

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Mai 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2015
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Je refais un dernier HELP lol, Arrivez-vous à avoir des requêtes 304 lors d'une seconde visite de vos pages sur les fichiers "annexes" (js css images)?en fait.

  7. #7
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Arrivez-vous à avoir des requêtes 304 lors d'une seconde visite de vos pages sur les fichiers...
    Oui toujours sauf si CTRL +F5 ou demande explicite.

    • As tu regardé les paramètres de ton navigateur ?
    • As tu une page qui te pose problème en ligne que l'on regarde l'onglet Réseau ?

Discussions similaires

  1. Utiliser l'Apache frontal pour les fichiers statiques
    Par kilicool dans le forum Apache
    Réponses: 3
    Dernier message: 28/01/2010, 15h37
  2. empecher le navigateur de mettre en cache les mp3 écouté
    Par slindy dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 06/11/2009, 10h57
  3. protection Hotlink : Caché les fichiers SWF
    Par cjacquel dans le forum Flash/Flex
    Réponses: 3
    Dernier message: 01/04/2009, 09h57
  4. [#include]A mettre sur tous les fichiers sources ?
    Par nodogeid dans le forum Débuter
    Réponses: 2
    Dernier message: 24/03/2008, 23h35
  5. Réponses: 2
    Dernier message: 29/05/2007, 17h59

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