13.2.2 Heuristic Expiration
Since origin servers do not always provide explicit expiration times, HTTP caches typically assign heuristic expiration times, employing algorithms that use other header values (such as the Last-Modified time) to estimate a plausible expiration time. The HTTP/1.1 specification does not provide specific algorithms, but does impose worst-case constraints on their results. Since heuristic expiration times might compromise semantic transparency, they ought to used cautiously, and we encourage origin servers to provide explicit expiration times as much as possible. HTTP/1.1 RFC 2616
What are the algorithms used by browsers to estimate plausible expiration times?
The ideal answer will cover all major browsers with evidence from source code or official blog posts.
Also, if the response does have a Last-Modified time, the heuristic expiration value SHOULD be no more than some fraction of the interval since that time. A typical setting of this fraction might be 10%
. Would one way to test is to place a file on a server with none of those headers and then test in all the browsers and see what responses they all spit back then check your local browser cache for an expiration. – Impossibility