2009-11-10 2 views
1

J'ai une grande question: S'il vous plaît voir le lien de l'exemple ci-dessous. Mon application ajoute actuellement à toutes les "ressources/liens" un identifiant de session. Je plus ou moins tombé sur ce par hasard à la recherche dans le cache de Firefox:ID de session et mise en cache du navigateur => Le navigateur est-il suffisamment intelligent pour supprimer le SessID?

http://localhost:8080/jquery-ui-1.7.2.custom.css;jsessionid=A8483FBF3BB6DDA499E06210BE0D612C 

Ma grande question est, sera une URL comme l'URL ci-dessus conduisent au fait que l'en-tête de la mise en cache (je l'utilise Cache-Control avec plusieurs années) deviendra plus ou moins inutile, puisque l'identification de session rendra chaque demande unique? Ce que je veux dire, c'est qu'un nouvel identificateur de session est assigné après 30 minutes, et que la mise en cache ne sera vraisemblablement efficace que pendant cette période, après quoi un nouvel identificateur de session sera généré, invalidant indirectement tous les identifiants de session. le contenu mis en cache sur le côté client, qui a l'ID de session dans son URL = l'URL change car il a maintenant un nouvel ID de session.)

=> Les navigateurs sont-ils aussi intelligents pour savoir que la ressource à mettre en cache est:

http://localhost:8080/jquery-ui-1.7.2.custom.css 

et non:

http://localhost:8080/jquery-ui-1.7.2.custom.css;jsessionid=A8483FBF3BB6DDA499E06210BE0D612C 

Ou un sessionId dans l'URL mènera-t-il au fait que la mise en cache est plus ou moins désactivée dans le navigateur?

Merci beaucoup! jan

Répondre

3

Il ne s'agit pas de savoir si les navigateurs sont assez intelligents. Le W3 standard for HTTP stipule que les URL différentes doivent être mises en cache séparément. Les navigateurs ont donc raison d'observer l'URL complète, y compris les arguments GET tels qu'un ID de session dans leur mise en cache.

Vous ne devez pas ajouter l'ID de session à tout ce qui est statique (tel que votre feuille de style).

+0

bonjour ben, merci pour votre réponse et le lien. Je ai googlé, mais le document W3 n'a pas montré. C'est un excellent document expliquant tout ce que je cherchais. Alors merci pour votre réponse. – jan

+0

J'ai récemment répondu à cette question: http://stackoverflow.com/questions/1674493/back-button-browser-behavior/1674525#1674525 donc j'ai eu le lien pratique: D –

2

Vous avez raison - le navigateur n'est pas assez intelligent, et une URL changeante annulera efficacement la mise en cache. Pourquoi avez-vous l'ID de session là-bas en premier lieu? Si la ressource n'est pas dépendante de la session, supprimez l'ID de session de l'URL et cela résoudra votre problème. Si la ressource dépend de la session, alors vous avez déjà tout ce dont vous avez besoin, car une session ne doit pas utiliser la ressource d'une autre session.

+0

bonjour Vilx, merci beaucoup pour votre réponse. – jan

Questions connexes