Hoi 
Ik ben ontwikkelaar van een CMS, wat inmiddels een leuke vorm heeft gekregen. Mijn CMS serveert alle requests zelf, dus Apache krijgt niet de kans zelf caching headers mee te sturen. Caching van plaatjes e.d. is makkelijk maar de feitelijke HTML-pagina's vereist meer aandacht. Immers: alles komt uit de database, en gezien de aard van de pagina's (forum, loginpages) kan de inhoud snel veranderen.
Nu ik op het punt sta de cache control om te gooien vraag ik jullie dan ook om advies en ideeen om HTTP caching op een elegante manier te implementeren. Caching doe ik via HTTP headers en niet in het HTML-document zelf. Ik dacht zelf aan de volgende mogelijkheden:
Jullie gedachten hierover zijn van harte welkom.
Ik ben ontwikkelaar van een CMS, wat inmiddels een leuke vorm heeft gekregen. Mijn CMS serveert alle requests zelf, dus Apache krijgt niet de kans zelf caching headers mee te sturen. Caching van plaatjes e.d. is makkelijk maar de feitelijke HTML-pagina's vereist meer aandacht. Immers: alles komt uit de database, en gezien de aard van de pagina's (forum, loginpages) kan de inhoud snel veranderen.
Nu ik op het punt sta de cache control om te gooien vraag ik jullie dan ook om advies en ideeen om HTTP caching op een elegante manier te implementeren. Caching doe ik via HTTP headers en niet in het HTML-document zelf. Ik dacht zelf aan de volgende mogelijkheden:
- Totaal geen caching-headers meesturen, laat de client maar uitzoeken of een document outdated is of niet. Wel stuur ik Last-Modified header mee zodat de client If-Modified-Since kan sturen en een HTTP 304 Not Modified response krijgt als het document niet is veranderd.
- Ik zet de expire datum 2 minuten in de toekomst, zodat het document gecached kan worden gedurende korte tijd.
- Een expire datum van 30 minuten of langer.
- Als gebruikers ingelogd zijn moet een eventuele proxy geen kopie onthouden; dat kan een security issue zijn. Ik moet dus wel caching headers gebruiken dus optie 1 gaat lastig worden.
- 2 minuten in de toekomst is leuk, maar wat als een van de twee computers (client / server) niet gesynchroniseerd is via NTP? Dan is die 2 minuten opeens in het verleden of verder in de toekomst.
- Een oplossing zou zijn een langere expire tijd, maar in hoeverre zorgt een 'overijverige' cache voor merkbare nadelen voor de client? In de zin van: verouderde pagina's krijgen wat de bruikbaarheid vermindert.
Jullie gedachten hierover zijn van harte welkom.