Hoi,
Via Google kan ik alleen maar informatie vinden over het uitzetten van browser caching voor PHP scripts, maar ik wil het tegenovergestelde: ik wil het aanzetten.
Ik heb een PHP script die, in de basis, een bestand uitleest en naar de browser stuurt (dmv readfile()). Het probleem is echter dat de browser dit elke keer doet, ook al is het bestand niet veranderd. Ik heb geprobeerd dit gedrag met headers aan te passen, maar dat is tot op heden niet gelukt.
Een voorbeeld met een opvraag.
/some_image.jpg: de eerste keer wordt die gedownload van de server (dat kan je zien, hij bouwd langzaam op van boven naar beneden). De tweede keer staat die er meteen, dus komt die uit de cache.
/test.php: wordt elke keer opnieuw gedownload van de server (want je ziet dat die elke keer langzaam opgebouwd wordt).
Het PHP script ziet er dan ongeveer zo uit (ik heb dus de modification date ge-hardcode om te testen, maar normaal zou ik dat met een filemtime() en gmdate() doen):
Hoe kan ik dus voor zorgen dat de browser de output van test.php cached en de volgende keer het uit de cache haalt ipv. van de server download?
Via Google kan ik alleen maar informatie vinden over het uitzetten van browser caching voor PHP scripts, maar ik wil het tegenovergestelde: ik wil het aanzetten.
Ik heb een PHP script die, in de basis, een bestand uitleest en naar de browser stuurt (dmv readfile()). Het probleem is echter dat de browser dit elke keer doet, ook al is het bestand niet veranderd. Ik heb geprobeerd dit gedrag met headers aan te passen, maar dat is tot op heden niet gelukt.
Een voorbeeld met een opvraag.
/some_image.jpg: de eerste keer wordt die gedownload van de server (dat kan je zien, hij bouwd langzaam op van boven naar beneden). De tweede keer staat die er meteen, dus komt die uit de cache.
/test.php: wordt elke keer opnieuw gedownload van de server (want je ziet dat die elke keer langzaam opgebouwd wordt).
Het PHP script ziet er dan ongeveer zo uit (ik heb dus de modification date ge-hardcode om te testen, maar normaal zou ik dat met een filemtime() en gmdate() doen):
code:
1
2
3
4
5
6
7
| header("Last-Modified: Fri, 09 Oct 2009 17:26:17 GMT"); header("Accept-Ranges: bytes"); header("Content-Length:" . filesize("some_image.jpg")); header("Content-Type: image/jpeg"); readfile("some_image.jpg"); exit(); |
Hoe kan ik dus voor zorgen dat de browser de output van test.php cached en de volgende keer het uit de cache haalt ipv. van de server download?