This is down to the cache control you have sent in the headers, which in your case is
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Pragma: no-cache
meaning NO CACHE whatsoever. Change that if you want the behaviour you asked about.