CURL istekleri önbelleğe alıyor mu?


19

Bu oldukça uzun bir soru, bu yüzden bana katlan.

Bir AWS örneğinden giriş yaptığım Akamai Sunucumu vurgulamak istedim. Bu yüzden, ab ölçütünü çalıştırmaya başladım. Ancak, ~ 3 MB video dosyalarını indirmek gülünç hızlı görünüyorlardı. Doğal olarak neler olduğunu görmek istedim. Dosyayı almak için yaptığım şey bu

curl -v -o / dev / null

Yukarıdaki ~ 5 saniye içinde tamamlandı.

Sonra, aynı komutu tekrar çalıştırdım. Bu sefer, ~ 200ms tamamlandı! Doğal olarak, sezgim dosyanın bir yerde önbelleğe alındığını söylüyor.

Sorularım:

  1. Önbellek dosyalarını kıvırır mı? Eğer öyleyse, görmezden gelmenin bir yolu var mı?
  2. Kıvırmazsa, ubuntu kıvrımın altında bir önbellek soyutlar mı? Eğer öyleyse, görmezden gelmenin bir yolu var mı?
  3. Gereksinimler göz önüne alındığında, b dışında bir amaca hizmet edebilecek bir kıyaslama aracı olabileceğini düşünüyor musunuz?

Teşekkürler, Akshay

Yanıtlar:


15

Curl istemcisi dosyaları önbelleğe almaz, ancak uzak sunucu ağı iyi olabilir. Yeniden oluşturup oluşturamayacağınızı görmek için URL'ye rastgele bir sorgu dizesi değişkeni eklemeyi deneyin.


Cevabınız için teşekkür ederim. Kullandığım Akamai sunucusu herhangi bir sorgu parametresini kabul etmediği için rastgele sorgu dizesi ekleyemedim! (zaman damgasının ve URL'nin tuzlu belirteç özetine bağlı olduğu için zorlama hatası). Ancak aynı yol için birden fazla jeton oluşturabildim (aslında birden fazla URL) ve kesinlikle haklısınız. curl herhangi bir dosyayı önbelleğe almadı - uzak sunucu oldu. CDN git! :)
Akshaya Shanbhogue

6

Gecikmiş olarak deneyin:

curl -v -H "Cache-Control: no-cache"

Bu, web sunucusuna önbelleklenmemesini söyleyecektir. Üstbilgilere uymak üzere kodlanmadığı sürece, önbelleğin altındaki katmanları durdurmaz.


0

Bu curl komutunu bir önbellek bozucu parametresiyle kullandım.

curl http://example.com/static/changing_file?_=$(date +%s)

date +%sURL'yi date +%s.%Nnanosaniye cinsinden eklemek için saniyede bir defadan fazla kullanırsanız, çağdan bu yana geçen saniyeleri yazdırır .


0

Bir eklemek kullanabilirsiniz rastgele sorgu dizesi kullanarak$RANDOM ortam değişkeni:

curl --location --silent "https://git.io/lsf-e2e?$RANDOM"

Bu benim için github ham dosyaları üzerinde çalıştı.


-2

Belki de DNS'iniz adın çözümlenmesini önbelleğe alıyor ve bu, yanıt verme süresindeki farklılığın sebebidir.

Bu sadece bir teori.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.