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

Servlets/JSP Java Discussion :

Cache control et header


Sujet :

Servlets/JSP Java

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 511
    Par défaut Cache control et header
    Bonjour

    La balise meta du header d'une jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="PRAGMA" content="NO-CACHE ou ...." />
    gère-t-elle aussi les ressources liées (css/js/png...) ou faut-il les gérer séparément.
    Si oui comment ? (serveur tomcat sans apache)

    merci

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Il vaut mieux utiliser ce genre de code dans un JSP:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
          <%
          response.setHeader("Cache-Control","no-cache"); //HTTP 1.1
          response.setHeader("Pragma","no-cache"); //HTTP 1.0
          response.setDateHeader ("Expires", 0); //prevent caching at the proxy server
          %>
    Et non, ca ne s'applique pas aux ressources liées. En même temps, tomcat est tout à fait capable de gérer le cache control des ressources statiques qu'il gère. Il n'y a donc pas de raison de désacriver leur mise en cache.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 511
    Par défaut
    En même temps, tomcat est tout à fait capable de gérer le cache control des ressources statiques qu'il gère.
    Mais alors comment reparamétrer le cache suivant les ressoiurces .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <html>
    <head>
    <meta http-equiv="Content-Script-Type" content="text/javascript" />
    <meta http-equiv="PRAGMA" content="NO-CACHE" />
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <script type="text/javascript" src="js/calendar.js"></script>
    <script type="text/javascript" src="js/menu_dhtml.js"></script>
    <script type="text/javascript" src="js/menu_css.js"></script>
    <script type="text/javascript" src="js/item_x.js"></script>
    <script type="text/javascript" src="js/fct_gestmat.js"></script>
    <script type="text/javascript" src="js/dom_event.js"></script>
    <script type="text/javascript" src="js/recherche.js"></script>
    <script type="text/javascript">var id ="0"</script>
    <link rel="stylesheet" type="text/css" href="style/menu_parc.css" />
    <link rel="stylesheet" type="text/css" href="style/gestmat.css" />
    <title>Gestion des matériels - formulaire</title>
    </head>
     
    <body >

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    la question, c'est plutot, pourquoi tu veux désactiver ce cache?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 511
    Par défaut
    je ne veux pas le déactiver mais connaitre son paramétrage et le modifier selon besoin (appli intranet)

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Tu peux lire ceci, ça à l'air intéressant (je le lirai et testerai plus tard pour ma part )

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par Mengué georges Voir le message
    je ne veux pas le déactiver mais connaitre son paramétrage et le modifier selon besoin (appli intranet)
    Les regles de cache des ressources statiques (css, gif, etc) sont envoyé avec une règle de cache qui force le browser à vérifier à chaque fois la date. Tomcat utilise les dates des fichiers concernés pour savoir si ca a expiré. Si tu veux modifier ce comportement, il faut remplacer la servlet par défaut (celle qui est mappée sur /) par ta propre servlet qui ferais le même boulot. Je ne comprend d'ailleurs pas quel autre besoin que celui là tu pourrais avoir. La ressource n'est pas modifiée sur le disque -> alors le client garde la version en cache.

  8. #8
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Les regles de cache des ressources statiques (css, gif, etc) sont envoyé avec une règle de cache qui force le browser à vérifier à chaque fois la date. Tomcat utilise les dates des fichiers concernés pour savoir si ca a expiré. Si tu veux modifier ce comportement, il faut remplacer la servlet par défaut (celle qui est mappée sur /) par ta propre servlet qui ferais le même boulot. Je ne comprend d'ailleurs pas quel autre besoin que celui là tu pourrais avoir. La ressource n'est pas modifiée sur le disque -> alors le client garde la version en cache.
    Ça ne fonctionne pas nickel avec IE... Lorsque tu modifies un script externe, il y a toutes les chances qu'il garde l'ancien...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 511
    Par défaut
    Ok j'avais pigé cette règle mais mon soucis ce sont les src:
    <script type="text/javascript" src="js/calendar.js"></script>
    <script type="text/javascript" src="js/menu_dhtml.js"></script>
    <script type="text/javascript" src="js/menu_css.js"></script>
    <script type="text/javascript" src="js/item_x.js"></script>
    <script type="text/javascript" src="js/fct_gestmat.js"></script>
    <script type="text/javascript" src="js/dom_event.js"></script>
    <script type="text/javascript" src="js/recherche.js"></script>
    si nous n'avons pas de header sur quel critère avons nous la màj. sinon rechargement systématique des css,js et img.
    Je pose cette question car j'ai quelques soucis avec des pc qui ont les écrans qui ne s'actualisent pas ou qui mettent un temps fou avant de charger une page qui fait au max 5Ko sans les src qui eux en font une 100Ko.
    Faut-il charger ces liens via une servlet qui permet de définir un header?

  10. #10
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par Mengué georges Voir le message
    Ok j'avais pigé cette règle mais mon soucis ce sont les src:

    si nous n'avons pas de header sur quel critère avons nous la màj.
    Lorsque le fichier est modifié coté serveur, tomcat change la date, et ainsi répond correctement aux requtes de type "if modified since" etc.

    Je pose cette question car j'ai quelques soucis avec des pc qui ont les écrans qui ne s'actualisent pas ou qui mettent un temps fou avant de charger une page qui fait au max 5Ko sans les src qui eux en font une 100Ko.
    Faut-il charger ces liens via une servlet qui permet de définir un header?
    même avec 100K, ca ne devrais pasmettre un temps fou, sauf peut etre avec un connection 3G. Je serais toi je regarderais plutot du coté de la vitesse d'exécution du javascript / de calcul de css dans le browser cible.

    Tu devrais commencer par confirmer que le client recharge bien tes css/js au lieu d'utiliser son cache (en sniffant la connection, par exemple). Je dis ça parce que j'ai eu le meme gag au boulot. Un page complexe qui s'affichait quasi instantanément avec FF 3 mais qui mettais presque 15 secondes à s'afficher dans IE.

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 511
    Par défaut
    Ok mais à part le menu aucun script n'est exécuté au chargement.
    L'appli de jsp en jsp utilise toujours les mêmes script et css à part qqes exceptions (appli type mcv).

    Donc c'est là qu'est mon interrogation car le cache du navigateur devrait prendre le relai puisque finalement il n'y a que 5Ko à charger.

  12. #12
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    commence par mesurer la quantité de données effectivement demandée par le navigateur et met ca en correspondance avec la bande passante du client pour voir si c'est la cause. Tu peux aussi configurer sur ton tomcat un valve qui va logguer à la facon de apache httpd les requetes et leur réponse.

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/04/2011, 22h25
  2. Lien relatif (#) appelé caché sous le header
    Par paradise dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 20/11/2007, 16h54
  3. [HTTP] Cache-Control, navigateurs et bouton "Précédent"
    Par adiGuba dans le forum Général Conception Web
    Réponses: 2
    Dernier message: 21/09/2007, 17h53
  4. [HTTP] Cache-control et Last-Modified ou ETag
    Par Hibou57 dans le forum Développement
    Réponses: 1
    Dernier message: 28/06/2007, 00h56
  5. Réponses: 2
    Dernier message: 01/07/2003, 19h41

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