http - ブラウザーの "F5"と "Ctrl + F5"リフレッシュはどのようなリクエストを生成しますか?




3 Answers

ブラウザに依存しますが、同様の動作をします。

FF、IE7、Opera、Chromeをテストしました。

F5は通常、変更された場合にのみページを更新します。 ブラウザは通常、すべてのタイプのキャッシュを可能な限り使用しようとし、要求に「If-modified-since」ヘッダーを追加します。 Operaは "Cache-Control:no-cache"を送信することで異なります。

CTRL - F5は更新を強制するために使用され、キャッシュは無視されます。 IE7はFFと同様に "Cache-Control:no-cache"を追加し、 "Pragma:no-cache"も追加します。 Chromeは通常の「If-modified-since」を実行し、Operaはそのキーを無視します。

私が正しく覚えていれば、 CTRL - F5を押したときに "Pragma:No-cache"を追加することで、キャッシュコントロールのサポートを追加するのは初めてのNetscapeでした。

編集:更新されたテーブル

以下の表は、ブラウザのリフレッシュボタンがクリックされたとき( Joel Coehoornの要求後)、および「max-age = 0」Cache-control-headerのときに何が起こるかについての情報で更新されています。

更新されたテーブル、2010年9月27日

┌────────────┬───────────────────────────────────────────────┐
│  UPDATED   │                Firefox 3.x                    │
│27 SEP 2010 │  ┌────────────────────────────────────────────┤
│            │  │             MSIE 8, 7                      │
│ Version 3  │  │  ┌─────────────────────────────────────────┤
│            │  │  │          Chrome 6.0                     │
│            │  │  │  ┌──────────────────────────────────────┤
│            │  │  │  │       Chrome 1.0                     │
│            │  │  │  │  ┌───────────────────────────────────┤
│            │  │  │  │  │    Opera 10, 9                    │
│            │  │  │  │  │  ┌────────────────────────────────┤
│            │  │  │  │  │  │                                │
├────────────┼──┼──┼──┼──┼──┼────────────────────────────────┤
│          F5│IM│I │IM│IM│C │                                │
│    SHIFT-F5│- │- │CP│IM│- │ Legend:                        │
│     CTRL-F5│CP│C │CP│IM│- │ I = "If-Modified-Since"        │
│      ALT-F5│- │- │- │- │*2│ P = "Pragma: No-cache"         │
│    ALTGR-F5│- │I │- │- │- │ C = "Cache-Control: no-cache"  │
├────────────┼──┼──┼──┼──┼──┤ M = "Cache-Control: max-age=0" │
│      CTRL-R│IM│I │IM│IM│C │ - = ignored                    │
│CTRL-SHIFT-R│CP│- │CP│- │- │                                │
├────────────┼──┼──┼──┼──┼──┤                                │
│       Click│IM│I │IM│IM│C │ With 'click' I refer to a      │
│ Shift-Click│CP│I │CP│IM│C │ mouse click on the browsers    │
│  Ctrl-Click│*1│C │CP│IM│C │ refresh-icon.                  │
│   Alt-Click│IM│I │IM│IM│C │                                │
│ AltGr-Click│IM│I │- │IM│- │                                │
└────────────┴──┴──┴──┴──┴──┴────────────────────────────────┘

テストされたバージョン:

  • Firefox 3.1.6および3.0.6(WINXP)
  • MSIE 8.0.6001および7.0.5730.11(WINXP)
  • Chrome 6.0.472.63および1.0.151.48(WINXP)
  • Opera 10.62および9.61(WINXP)

ノート:

  1. バージョン3.0.6ではIとCが送信されますが、3.1.6では新しいタブでページが開き、「I」だけの通常の要求が行われます。

  2. バージョン10.62は何もしません。 9.61は、古いテーブルのタイプミスでない限り、Cを実行する可能性があります。

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

http browser caching cross-browser refresh

WebブラウザでF5 キーCtrl + F5 キーがどのような動作をするかについての標準はありますか?

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

しかし、今日、私はいくつかの最新のブラウザ(Chrome、IE8)では、このようにはうまく機能しないことに気付きました。 F5Ctrl + F5の両方がIf-Modified-Sinceヘッダーを送信します。

では、どのように動作するか、または標準がない場合、主要なブラウザでこれらのリフレッシュ機能の実装方法がどのように異なるのでしょうか?




少なくともFirefox(v3.5)では、キャッシュは単純にクリアされているのではなく無効になっているようです。 ページに同じイメージのインスタンスが複数ある場合は、複数回転送されます。 後でAjax / JavaScript経由で追加されるimgタグの場合もそうです。

したがって、あなたが最初にCTRL - F5を使用してページをロードしたため、ブラウザがオートリフレッシュAjaxサイトで数百回同じ小さなアイコンをダウンロードし続けているのではないかと思います。




新しいリクエストがWebサーバーに送られてもユーザーがF5キーを押すと、リクエストの応答も取得されます。 しかし、レスポンスヘッダーが解析されるとき、それはブラウザのキャッシュ内の必要な情報をチェックします。 キャッシュ内の必要な情報が期限切れでない場合、その情報はキャッシュ自体から復元されます。

ユーザーがCTRL - F5をクリックしても、新しい要求がWebサーバーに送信され、応答が返されます。 しかし、レスポンスヘッダーが解析される今回は、キャッシュ内の必要な情報をチェックせず、更新されたすべての情報フォームサーバーのみを持ち込みます。




Related