HTTPS 経由で If-Modified-Since ヘッダーを送信するように Firefox を説得する

StackOverflow https://stackoverflow.com/questions/16483

  •  08-06-2019
  •  | 
  •  

質問

Firefox (重要な場合は 3.0.1) に HTTPS リクエストで If-Modified-Since ヘッダーを送信させるにはどうすればよいですか?リクエストがプレーン HTTP を使用し、サーバーがそれを忠実に尊重する場合、ヘッダーが送信されます。しかし、代わりに HTTPS を使用して同じサーバーから同じリソースをリクエストすると (つまり、URL の http:// を https:// に変更するだけ)、Firefox は If-Modified-Since ヘッダーをまったく送信しません。この動作は SSL 仕様か何かによって義務付けられているのでしょうか?

以下に、Live HTTP Headers Firefox 拡張機能を使用してプルされた HTTP および HTTPS リクエスト/レスポンス ペアの例をいくつか示します。一部の相違点は太字で示しています。

HTTP リクエスト/レスポンス:

http://myserver.com:30000/scripts/site.js

GET /scripts/site.js HTTP/1.1
Host: myserver.com:30000
User-Agent: Mozilla/5.0 (...) Gecko/2008070206 Firefox/3.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
変更された場合:火曜日、2008年8月19日15:57:30 GMT IF-NONE-MATCH:"A0501D1-300A-454D22526AE80" -GZIPキャッシュコントロール:最大年齢=0

HTTP/1.x 304 Not Modified
Date: Tue, 19 Aug 2008 15:59:23 GMT
Server: Apache/2.2.8 (Unix) mod_ssl/2.2.8 OpenSSL/0.9.8
Connection: Keep-Alive
Keep-Alive: timeout=5, max=99
Etag: "a0501d1-300a-454d22526ae80"-gzip

HTTPS リクエスト/レスポンス:

https://myserver.com:30001/scripts/site.js

GET /scripts/site.js HTTP/1.1
Host: myserver.com:30001
User-Agent: Mozilla/5.0 (...) Gecko/2008070206 Firefox/3.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive

HTTP/1.x 200 OK
Date: Tue, 19 Aug 2008 16:00:14 GMT
Server: Apache/2.2.8 (Unix) mod_ssl/2.2.8 OpenSSL/0.9.8
Last-Modified: Tue, 19 Aug 2008 15:57:30 GMT
Etag: "a0501d1-300a-454d22526ae80"-gzip
Accept-Ranges: bytes
Content-Encoding: gzip
Content-Length: 3766
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/javascript

アップデート:設定 browser.cache.disk_cache_ssl true にするとうまくいきました (Nickolay 氏が指摘しているように、メモリ キャッシュがまだ残っているため、これは奇妙です)。「キャッシュコントロール」の追加:応答の public" ヘッダーも機能しました。ありがとう!

役に立ちましたか?

解決

HTTPS リクエストはキャッシュされないため、If-Modified-Since を送信しても意味がありません。キャッシュしないのはセキュリティ上の予防措置です。

キャッシュしないもの ディスク上 はセキュリティ上の予防措置ですが、実際に影響を与えているようです。 変更された場合-以降 動作(コードをざっと見る)。

Firefox の設定を試してください (about:config 内) ブラウザ.キャッシュ.ディスク_キャッシュ_ssl真実. 。それが役立つ場合は、送信してみてください キャッシュ制御:公共 応答のヘッダー。


アップデート: Firefox の動作 かわった Gecko 2.0 (Firefox 4) の場合 -- HTTPS コンテンツがキャッシュされるようになりました。

他のヒント

HTTPS リクエストはキャッシュされないため、 変更された場合-以降 意味がありません。キャッシュしないのはセキュリティ上の予防措置です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top