Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What requests do browsers' "F5" and "Ctrl + F5" refreshes generate?

Is there a standard for what actions F5 and Ctrl+F5 trigger in web browsers?

I once did experiment in IE6 and Firefox 2.x. The F5 refresh would trigger a HTTP request sent to the server with an If-Modified-Since header, while Ctrl+F5 would not have such a header. In my understanding, F5 will try to utilize cached content as much as possible, while Ctrl+F5 is intended to abandon all cached content and just retrieve all content from the servers again.

But today, I noticed that in some of the latest browsers (Chrome, IE8) it doesn't work in this way anymore. Both F5 and Ctrl+F5 send the If-Modified-Since header.

So how is this supposed to work, or (if there is no standard) how do the major browsers differ in how they implement these refresh features?

like image 437
Morgan Cheng Avatar asked Dec 22 '08 02:12

Morgan Cheng


People also ask

What does Ctrl and F5 do?

Ctrl F5 (or Ctrl + F5) reloads the current page including the browser cache. It's called Hard reload. It means that the browser will not use the current cache but will be forced to download again all the files (js files, images, scripts, …). You will have the most fresh version of the page sent by the server.

What does F5 refresh do?

F5 is a standard page reload. Ctrl + F5 refreshes the page by clearing the cached content of the page. Having the cursor in the address field and pressing Enter will also do the same as Ctrl + F5 .

What does Ctrl and F5 do in Chrome?

Ctrl + F5 is the shortcut to trigger a refresh, which will force the page to reload. To make the browser refresh without relying on the cache, use Shift + Ctrl + F5. This triggers a “hard refresh”, so the browser pulls up the newest version of a web page.

How is the execution of program using F5 different from F5 Ctrl?

F5 reloads the page contents whereas Ctrl+F5 forcibly reloads the page contents as well as clears previously cached scripts and other page contents.


2 Answers

It is up to the browser but they behave in similar ways.

F5 usually updates the page only if it is modified. Modern browsers sends Cache-Control: max-age=0 to tell any cache the maximum amount of time a resource is considered fresh, relative to the time of the request.

CTRL-F5 is used to force an update, disregarding any cache. Modern browsers sends Cache-Control: no-cache and Pragma: No-cache

If I remember correctly it was Netscape which was the first browser to add support for cache-control by adding Pragma: No-cache when you pressed CTRL-F5.

┌───────────┬──────────────┬─────┬─────────────────┬──────────────────────────────┐ │ Version 4 │      F5      │  R  │      CLICK      │ Legend:                      │ │2021 MAY 19├──┬──┬──┬──┬──┼──┬──┼──┬──┬──┬──┬──┬──┤ C = Cache-Control: no-cache  │ │           │  │S │C │A │A │C │C │  │S │C │A │A │C │ I = If-Modified-Since        │ │           │  │H │T │L │L │T │T │  │H │T │L │L │T │ M = Cache-Control: max-age=0 │ │           │  │I │R │T │T │R │R │  │I │R │T │T │R │ N = Not tested               │ │           │  │F │L │  │G │L │L │  │F │L │  │G │L │ P = Pragma: No-cache         │ │           │  │T │  │  │R │  │+ │  │T │  │  │R │+ │ - = ignored                  │ │           │  │  │  │  │  │  │S │  │  │  │  │  │S │                              │ │           │  │  │  │  │  │  │H │  │  │  │  │  │H │ With 'CLICK' I refer to a    │ │           │  │  │  │  │  │  │I │  │  │  │  │  │I │ mouse click on the browsers  │ │           │  │  │  │  │  │  │F │  │  │  │  │  │F │ refresh-icon.                │ │           │  │  │  │  │  │  │T │  │  │  │  │  │T │                              │ │           │  │  │  │  │  │  │  │  │  │  │  │  │  │ 1: Version 3.0.6 sends I     │ ├───────────┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┤    and C, but 3.1.6 opens    │ │Brave 1.24 │M │CP│CP│- │- │M │CP│M │CP│CP│M │CP│CP│    the page in a new tab,    │ ├───────────┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┤    making a normal request   │ │Chrome 1   │MI│MI│MI│- │- │MI│- │MI│MI│MI│MI│MI│N │    with only I.              │ │Chrome 6   │MI│CP│CP│- │- │MI│CP│MI│CP│CP│MI│- │N │ 2: Version 10.62 does        │ │Chrome 90  │M │CP│CP│- │- │M │CP│M │CP│CP│M │CP│CP│    nothing. 9.61 might do C  │ ├───────────┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┤    unless it was a typo in   │ │Edge 90    │M │CP│CP│- │- │M │CP│M │CP│CP│M │CP│CP│    my old table.             │ ├───────────┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┤ 3: Opens the currernt tab in │ │Firefox 3.x│MI│- │CP│- │- │MI│CP│MI│CP│1 │M │MI│N │    a new tab, but does not   │ │Firefox 89 │M │- │CP│- │M │M │CP│M │CP│3 │M │M │3 │    refresh the page if it is │ ├───────────┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┤    cached in the browser.    │ │MSIE 8, 7  │I │- │C │- │I │I │  │I │I │C │I │I │N │                              │ ├───────────┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┤                              │ │Opera 10, 9│C │- │- │2 │- │C │- │C │C │C │C │- │N │                              │ │Opera 76   │M │CP│CP│- │- │M │- │M │CP│CP│M │CP│CP│                              │ ├───────────┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──────────────────────────────┤ │                    https://stackoverflow.com/a/385491/36866                     │ └─────────────────────────────────────────────────────────────────────────────────┘ 

Note about Chrome 6.0.472: If you do a forced reload (like CTRL-F5) it behaves like the url is internally marked to always do a forced reload. The flag is cleared if you go to the address bar and press enter.

like image 133
some Avatar answered Sep 23 '22 00:09

some


Generally speaking:

F5 may give you the same page even if the content is changed, because it may load the page from cache. But Ctrl+F5 forces a cache refresh, and will guarantee that if the content is changed, you will get the new content.

like image 24
dancavallaro Avatar answered Sep 24 '22 00:09

dancavallaro