Apakah CURL meminta cache?

19

Ini pertanyaan yang cukup panjang, jadi bersabarlah.

Saya ingin menekankan Server Akamai saya masuk dari instance AWS. Jadi, saya mulai menjalankan benchmark ab. Namun, mereka tampak sangat cepat mengunduh ~ 3 MB file video. Secara alami saya ingin melihat apa yang terjadi. Ini yang saya lakukan untuk mendapatkan file

ikal -v -o / dev / null

Di atas selesai dalam ~ 5 detik.

Selanjutnya, saya menjalankan perintah yang sama lagi. Kali ini, selesai dalam ~ 200 ms! Secara alami, intuisi saya mengatakan file sedang di-cache di suatu tempat.

Pertanyaan saya:

  1. Apakah file cache curl? Jika demikian, adakah cara untuk mengabaikannya?
  2. Jika curl tidak, apakah ubuntu mengabstraksi cache di bawah curl? Jika demikian, adakah cara untuk mengabaikannya?
  3. Mengingat persyaratan, apakah Anda pikir mungkin ada alat pembandingan selain ab yang dapat melayani tujuan?

Terima kasih, Akshay

Akshaya Shanbhogue
sumber

Jawaban:

15

Klien curl tidak melakukan caching file, tetapi jaringan server jauh mungkin. Coba tambahkan variabel string kueri sembarang ke URL untuk melihat apakah Anda dapat mereproduksinya.

Josip Rodin
sumber
Terima kasih atas jawaban Anda. Saya tidak bisa menambahkan string kueri sembarang karena server Akamai yang saya gunakan tidak menerima parem permintaan! (memaksa kesalahan karena bergantung pada intisari token cap waktu dan URL). Namun saya dapat menghasilkan beberapa token untuk jalur yang sama (pada dasarnya beberapa URL) dan Anda benar sekali. curl tidak melakukan caching file apa pun - server jauh itu. Pergi CDN! :)
Akshaya Shanbhogue
6

Terlambat, coba:

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

Itu akan memberitahu server web untuk tidak melakukan cache. Tidak menghentikan lapisan di bawah caching kecuali jika diberi kode untuk mematuhi header.

pengguna171959
sumber
0

Saya telah menggunakan perintah curl ini dengan parameter cache buster.

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

date +%smencetak detik sejak zaman, jika Anda memanggil url lebih dari sekali penggunaan kedua date +%s.%Nuntuk menambahkan dalam nanodetik.

Martlark
sumber
0

Anda dapat menggunakan menambahkan random string kueri menggunakan satu $RANDOMvariabel lingkungan:

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

Ini bekerja untuk saya di file mentah github.

Édouard Lopez
sumber
-2

Mungkin dns Anda sedang caching resolusi nama dan ini adalah alasan perbedaan waktu tanggapan.

Itu hanya teori.

pengguna315010
sumber