2009-10-05 5 views
3

Nous observons des erreurs bizarres lorsque nos clients testent nos applications Web ASP.NET. Il y a un compteur de panier en haut de chaque page qui vous indique combien d'articles sont dans le panier. Elle rapporte que ce nombre change en passant d'une page à l'autre. Nous ne pouvons pas recréer cela.Un proxy d'entreprise peut-il mettre en cache des pages entières?

Est-il possible que son serveur proxy d'entreprise cache la page entière et ne contacte jamais réellement notre serveur? Ceci est un site de mise en scène sur http, son site de production est sur https. Révision: La page est également mise en cache sur HTTPS. Il montre une version complètement mise en cache de notre page de panier. Si l'utilisateur clique sur le bouton d'actualisation, il obtient une version actuelle de la page, mais cette nouvelle version devient la version mise en cache.

+0

Avez-vous nocache et diverses autres configurations "s'il vous plaît ne cachez pas cette page" dans l'application? –

+0

Pas spécifiquement, mais nous n'avons jamais eu ce problème dans le passé. Dois-je toujours dire au serveur proxy quel contenu est dynamique? – JoshBaltzell

Répondre

2

Il existe également un paramètre dans IE qui pourrait provoquer ce comportement. Allez dans "Outils"> "Options Internet". Dans l'onglet "Général", cliquez sur "Paramètres" sous "Historique de navigation". Assurez-vous que "Rechercher les versions les plus récentes des pages enregistrées" est réglé sur "Automatiquement". Ceci est la valeur par défault.

J'avais un utilisateur qui a changé cela en "Jamais" et je me demandais pourquoi il voyait toujours du contenu ancien. :)

+0

Je viens d'envoyer un e-mail au client pour voir si c'est le problème. Je pourrais recréer ce problème en changeant ce paramètre sur une machine avec IE6. Bonne idée! – JoshBaltzell

+0

C'était exactement le problème. L'utilisateur avait défini son IE pour ne jamais obtenir une nouvelle version d'une page Web. Pourquoi cela a été défini de cette façon, je ne le saurai peut-être jamais. Merci beaucoup pour l'information. Cela m'a sûrement sauvé de nombreuses heures de travail. – JoshBaltzell

3

Il est certainement possible qu'un proxy intermédiaire (entreprise ou autre) met en cache vos pages. Bien que je ne comprends pas comment cela expliquerait le numéro de panier sur la page en changeant. Si vous ne voulez pas de la mise en cache ait lieu, envoyer les en-têtes HTTP appropriées ainsi que chaque demande ne voulez pas vous mises en cache:

Cache-Control: private, no-store, max-age=0 
Expires: <some date in the past> 
Pragma: no-cache 

La première ligne ci-dessus est pour les clients HTTP 1.1, et le second 2 sont pour les clients HTTP 1.0. Consultez la section 14.9 de la spécification de protocole HTTP 1.1 pour tous les détails sanglants.

+0

Un proxy doit-il obéir à l'en-tête HTTP expires? –

+0

C'est un bug si ce n'est pas le cas puisque ces valeurs sont destinées à contrôler le comportement du proxy. –

+1

@Dominic Rodger Oui, si c'est en suivant les spécifications. Mais c'est un système d'honneur :(Les ​​chances sont bien, vous n'avez pas affaire à un proxy maléfique :) – Asaph

Questions connexes