Ich habe eine ziemlich komplexe Webanwendung basierend auf Django 1.11. Vor einiger Zeit Benutzer begannen zu berichten, dass sie bekommen "jemand anderen Ansichten" - memcached zur Verfügung gestellt sie mit html im Cache von Dekorator @cache_page(xx)
ohne Unterscheidung zwischen den Sitzungen innerhalb der Cache-Frist.Django fehlt Vary: Cookie-Header für zwischengespeicherte Ansichten
Bei weiterer Untersuchung entdeckte ich, dass in einigen Fällen Vary: Cookie
Header fehlte und falsche 'Sitzung' serviert wurde. Was seltsam ist, zeigte es nur, wenn Backend mit curl abgefragt wurde (das hat keine Sitzung, Benutzer etc -> Backend gedient, geloggt in der gecachten Ansicht).
Leider ist dieses Problem wirklich schwer zu reproduzieren, manchmal tritt es auf, manchmal nicht. Ich baue sogar eine einfache Django-App von Grund auf neu, um zu sehen, ob ich überprüfen könnte, was die Ursache ist. Was beobachtet wurde, ist, dass das Problem nicht auftritt, wenn @cache_page
entfernt oder login_required
hinzugefügt wird.
Ich entfernte schließlich alle @ cache_page-Dekoratoren aus den Ansichten und das Problem wurde nicht in der Produktion beobachtet, aber es ist ein Workaround und ich würde gerne wissen, was die Ursache ist.
Wenn jemand irgendeinen Hinweis hat, was die Ursache sein könnte, würde es sehr geschätzt werden!
Das könnte es sein! Danke für Einsicht. – Brachacz