views:

282

answers:

2

When the back button is pressed in a web browser, is the default action to send a get request or serve from the browsers history?

If its browser specific, what would the default actions be for Internet Explorer and Firefox?

+8  A: 

Informal Answer

If the previous page was a GET request, the page is typically fetched from the browser's cache unless the cache time on the page has expired (this expiration time is set by the administrators of the web page), or another factor leads the browser to believe the information isn't fresh enough.

If the previous page was a POST request, the browser usually asks you if you'd like to resend the information and the page is fetched from the server.

Formal Answer

This is covered in Section 13 of the HTTP Protocol specification that browsers should implement.

Specifically, 13.10 states that:

Some HTTP methods MUST cause a cache to invalidate an entity. This is either the entity referred to by the Request-URI, or by the Location or Content-Location headers (if present). These methods are:

  - PUT
  - DELETE
  - POST

Other types of requests (such as a GET), may be cached. Read through the full spec if you want the gory details, but the spec is setup in a way that allows the browser to use its cache as much as possible.

Ben S
+1  A: 

I just tested this in Chrome and Firefox for fun

When I press back in Chrome on a Google search page, no requests happen. The browser pulls from cache.

In Firefox, I actually get a 204 No Content with the path being http://clients1.google.ca/generate%5F204 from Google.

I found this using Charles proxy so it's nothing scientific :)

Bartek