Ansichtssache

Wenn ich die verschiedenen Zugriffswege auf meine Website einmal unvoreingenommen betrachten könnte, hielte ich mich für einen ziemlichen Umstandskrämer. Jede Seite lässt sich über ihre ID (/11923) oder über ihren Kurznamen (/blog) aufrufen, Seiten mit explizitem Erstelldatum (Blogeinträge) zusätzlich über die Kombination aus Datum und Kurznamen (/2011/11/no-werefish). Wenn eine Seite privat ist, wird jeder Zugriff über eine der öffentlichen URLs auf eine spezielle URL umgeleitet (/private/2201), die wiederum eine Anmeldung erfordert. Und schließlich gibt es noch Archivseiten für Blogs (/blog/2011/11).

Intern kümmert sich ein Team aus Views um die Abbildung der Zusammenhänge: Die Views numeric, alpha, blogentry_alpha und blog_archive nehmen die regulären Anfragen entgegen und geben sie je nach Seitentyp an die zentralen Views page_view bzw. blog_view weiter. Handelt es sich um private Seiten, leiten page_view/blog_view automatisch um auf die speziellen Views private_view bzw. private_archive, die mit @login_required verziert sind. Ist die Besucherin eingeloggt, geben private_view/private_archive wieder zurück an page_view/blog_view. Mit anderen Worten:

alpha > page_view > private_view > page_view blog_archive > blog_view > private_archive > blog_view

Das lässt sich beim besten Willen nicht mehr mit der wohlfeilen Ausrede Cache Control begründen. Immerhin: Die Besucherinnen bekommen von dem ganzen Hin und Her nur dann etwas mit, wenn sie private Seiten über eine nicht private URL aufrufen und damit einen HttpResponseRedirect auslösen.