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.