Your internet provider, your school, and even your browser store pages that you have seen before. The reason? Your ISP or school has to pay for internet connectivity bandwidth and doesn't really want to pull down a frequently-accessed web page and its associated files from Timbucktu every time somebody wants to use it, and you would be upset with your browser if it insisted on re-loading a page you just looked at every time you return to it.
So all of these entities store frequently (or recently) viewed web pages. Most of the big web sites put markers in their pages to indicate when the page was last changed, and how long you can wait before checking for a page update. These entities store these markers and use them to control their caches. For example, they can just read the header of a large page (the header is MUCH smaller than the page itself) and see when it was last changed. If it was more recently than the date and time indicated on their stored marker, they update, otherwise they don't.
But sometimes a page gets changed ahead of time, or it doesn't have a marker, or its an infrequently used page. In that case, you need to force the caches to actually look at the page itself and see if it is different. You can do this by putting a question mark (?) after the URL in the address bar of the browser. For example you could go to my home page at the following URL:
Why does this work? The question mark after the URL is an indicator that you are sending a "Query String", which is everything after the question mark, to the web site. Query Strings are used for cases where you are requesting specific information which must be specifically provided to you. Yahoo's stock quotes work this way, with the Query String providing the ticker symbols of the stocks whose price you want to track. Since you don't want just a generic page, and the ISPs have no clue as to what the query strings mean, the caches know that they must actually retrieve the page, not just give you a stored version.
IT WOULD BE IRRESPONSIBLE to just put a question mark after every web page request, as this runs up the costs for everyone and provides no benefit for you. So use this trick only when you know or strongly suspect that you are not getting the latest version of a page.