web-dev-qa-db-ja.com

Httpヘッダー304とキャッシュ?

私たちの会社はこれらの設定を使用しています(理由は聞かないでください)-すべてのリクエストに対して、サーバーからの新しいリクエストが必要です。これはIEのみを使用するイントラネットシステムです。

彼らはそれを次のように定義しました:

enter image description here

iis7にはWindows認証NTLMもあります。

2つの質問があります。

Question #1)

ブラウザがリクエストを行うとき(css):

(今のところ401応答を残します-これがntlmの動作方法です) enter image description here

彼はif-modified-sinceヘッダーでそれを要求しています。

なぜ彼はこのヘッダーを追加するのですか?どうすれば設定できますか?最初の写真で示したように、なぜ彼はIEの設定を使用して、毎回ダウンロードしようとしないのですか?

Question #2)

そのための応答(ntlmネゴシエーション後)は:

304ヘッダーであるNot-modifiedで応答します。 if-modified-sinceヘッダーを付けてリクエストを送信したためだと思います。

しかし問題がある。

彼は実際に私のキャッシュからダウンロードするように私に言っています。

しかし IE設定-not)でキャッシュからロードするように明示的に彼に伝えました。

私はここで行方不明ですか?

どうもありがとう。

enter image description here

2
Royi Namir

Q1

なぜ彼はこのヘッダーを追加するのですか?

ブラウザにはすでにコンテンツのコピーがキャッシュにあるためです。これは、

1)賞味期限が過ぎています

2)ブラウザは毎回新しいバージョンをチェックするように設定されています

どうすれば設定できますか?

(1)については何もできません-これはHTTPの仕組みです。 (2)の場合は、設定を変更して「自動的に」をチェックします

Q2

しかし、私はIE設定-キャッシュからロードしないように-明示的に彼に言いました。

いいえ-ブラウザへの指示はチェック新しいバージョンの場合-リクエストの条件部分が一致した場合にのみ、ウェブサーバーは新しいバージョン(200応答)を返します。

2
symcbean

あなたが求めているセットアップは非常に悪い考えです。これを実際に展開すると、すべてのロードが遅くなるように見えます。接続するすべてのサーバーは、スミザリーンズに打ち込まれます。なぜあなたがこれをするように求められているのか分かりませんが、本当の問題が何であれ、合理的な解決策を考え出すことができるように、理由を見つける必要があります。

さらに、Internet Explorerではまったく実行できません。キャッシュ(インターネット一時ファイル)の使用を完全に無効にする方法はありません。

あなたが遭遇するかもしれない1つの状況は、ネットワークの周りにコピーされることになる大きなIEキャッシュを持っているローミングプロファイルを持つ人々です。これが本当の問題であるなら、あなたはそうすることができます IE終了時にキャッシュを空にする 。少なくともIEのキャッシュに関しては、大きなファイルのコピーは実行されなくなります。

0
Michael Hampton