私は、その前にVarnishがあるサードパーティのWebサービスを使用しています。ワニスは読み取り専用であり、キャッシュされていない要求はかなり遅いため、そこにあります。
jQueryとJSONPを使用してwebserivceにクエリを実行しています。通常、$.getJSON
JSONPを使用した追加のGETパラメーターを介したキャッシュバスティングを採用しています(のドキュメントによる$.ajax
)。私のWebサービスは読み取り専用なので、結果をキャッシュしたいので、次のように呼び出します。
$.ajax({
url: "http://example.com/json/callback=?",
dataType: "jsonp",
cache: true,
data: data,
success: callback
});
Chromeの[ネットワーク]タブでリクエストが送信されるのを見ることができます。
http://example.com/json?callback=jQuery171047077397373504937_1348163237407&arg1=foo&arg2=bar
以来、リクエストでcache=true
余分な「」を取得していません。&_=[TIMESTAMP]
callback=
応答が返ってくるのが非常に遅いので、リクエストの一部のために、私は効果的にワニスをバイパスしていると思います。
言い換えると、jQueryは呼び出しごとに一意のコールバックキーを使用するため、Varnishが各リクエストを異なるものと見なしていると想定するのは正確ですか?したがって、キャッシュされた結果が返されることはありませんか?
サードパーティにVarnishを変更するように依頼する前に、正しい問題を特定したことを確認したいと思います。VarnishVCLのGETパラメータを無視します。