ブラウザの「F5」と「Ctrl + F5」の更新はどのようなリクエストを生成しますか? 質問する

ブラウザの「F5」と「Ctrl + F5」の更新はどのようなリクエストを生成しますか? 質問する

Web ブラウザでのアクションF5Ctrl+トリガーに関する標準はありますか?F5

私はかつて IE6 と Firefox 2.x で実験しました。F5リフレッシュはヘッダー付きの HTTP リクエストをサーバーに送信しますIf-Modified-Sinceが、Ctrl+にはF5そのようなヘッダーはありません。私の理解では、F5キャッシュされたコンテンツを可能な限り利用しようとするのに対し、Ctrl+ はF5キャッシュされたコンテンツをすべて破棄し、サーバーからすべてのコンテンツを再度取得することを目的としています。

しかし今日、最新のブラウザ (Chrome、IE8) の一部ではこの方法では動作しなくなったことに気付きました。F5Ctrl+ の両方がヘッダーF5を送信しますIf-Modified-Since

では、これはどのように機能するのでしょうか。あるいは、(標準がない場合) 主要なブラウザはこれらの更新機能を実装する際にどのように異なるのでしょうか。

ベストアンサー1

ブラウザによって異なりますが、動作は似ています。

F5通常、ページは変更された場合にのみ更新されます。最新のブラウザは、Cache-Control: max-age=0リクエストの時刻を基準としてリソースが最新であるとみなされる最大時間をキャッシュに通知するために送信します。

CTRL-F5キャッシュを無視して強制的に更新するために使用されます。現代のブラウザはCache-Control: no-cachePragma: No-cache

私の記憶が正しければ、 -Pragma: No-cacheを押すと追加されるキャッシュ制御のサポートを追加した最初のブラウザは Netscape でした。CTRLF5

┌───────────┬──────────────┬─────┬─────────────────┬──────────────────────────────┐
│ 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                     │
└─────────────────────────────────────────────────────────────────────────────────┘

Chrome 6.0.472 に関する注意: 強制リロード ( CTRL-などF5) を実行すると、URL が常に強制リロードを実行するように内部的にマークされているように動作します。アドレス バーに移動して Enter キーを押すと、フラグはクリアされます。

おすすめ記事