2010-12-02 40 views
0

J'ai un problème avec l'en-tête If-none-match qui est envoyé à une application Django CMS, en exécutant Apache2/mod_wsgi. Lors de l'édition de la page la plus utilisée, les navigateurs de différents utilisateurs (Chrome et FF) reçoivent une erreur d'Apache se plaignant que le champ if-none-match est trop long.Qu'est-ce qui fait que le champ d'en-tête de demande if-none-match devient énorme?

Lors de l'inspection (via wireshark) le navigateur envoie environ 8KiB si etags dans cette ligne d'en-tête. Effacer le cache du navigateur ou le redémarrer n'efface pas le problème.

Je ne suis pas sûr de ce qui est en cause ici.

L'interprétation correcte des valeurs du champ comme suit:

Le navigateur prétend connaître quelques centaines de versions précédentes de la page (qui est crédible, car l'erreur ne se produit que sur beaucoup « get'ed pages qui changent rapidement). Y at-il un moyen d'effacer les etags de FF ou de Chrome?

Merci,

Chris.

Répondre

2

Il est préférable que vous empêchiez simplement Django de générer ETags en premier lieu. Puisque Django ne les génère qu'après le rendu d'une page, ils ne sauvegardent pas les ressources du serveur - juste de la bande passante. Si votre goulot d'étranglement n'est pas de la bande passante, vous pouvez simplement les désactiver en définissant USE_ETAGS = False dans votre fichier de paramètres.

Les détails sont ici: http://docs.djangoproject.com/en/1.2/ref/settings/#std:setting-USE_ETAGS