what you are encountering had nothing to do with the sessions, but rather the difference between get and post. and when the content ot the page was set to expre.
get was designed for when you want to ask for some information to be sent to you. if you went back to that page using a browser back, if the page had not expired, the browser displayed it to you from cache. if it had expired, it sent the request in again and the server sent fresh content back, as you discovered no problem.
post was designed for "posting" data to the server. like as in "posting" the general ledger if you are familiar with that terminology. for example, you keep your checkbook on the server, you write a check and then sit down and bring up the check entry page on your personal web site and "post" the check to the server which records it in your computer check book and deducts the amount of the check from your balance. if using your browser back or forward button, due to problems with the check being posted multiple times and the resulting bank balance being too low. (and it could be worse, what if you were posting a bill to be paid electronicaly and somebody got paid again, in real money from your checking account, each time your browser when forward or backward through that page). to overcome the problem of poorly written server applications that would pay the same bill even though it had already been paid, or post a check with the same number and date and amount that had already been posted, the browser people took matters in there own hands and put up a message, asking you if they should resend the posted information or not, whenever you try to refresh the page. does that help?