แคช CURL ร้องขอหรือไม่


19

นี่เป็นคำถามที่ค่อนข้างยาวดังนั้นทนกับฉัน

ฉันต้องการเน้นว่าเซิร์ฟเวอร์ Akamai ของฉันลงชื่อเข้าใช้จากอินสแตนซ์ AWS ดังนั้นฉันจึงเริ่มใช้เกณฑ์มาตรฐาน ab อย่างไรก็ตามดูเหมือนว่าพวกเขาจะดาวน์โหลดไฟล์วิดีโอขนาด 3 เมกะไบต์ได้อย่างรวดเร็ว ฉันอยากเห็นว่าเกิดอะไรขึ้น นี่คือสิ่งที่ฉันทำเพื่อรับไฟล์

curl -v -o / dev / null

ข้างต้นแล้วเสร็จใน ~ 5 วินาที

ต่อไปฉันรันคำสั่งเดิมอีกครั้ง คราวนี้มันเสร็จใน ~ 200ms! โดยธรรมชาติแล้วปรีชาของฉันบอกว่าไฟล์นี้ถูกแคชอยู่ที่ไหนซักแห่ง

คำถามของฉัน:

  1. ขดไฟล์แคชหรือไม่? ถ้าเป็นเช่นนั้นมีวิธีเพิกเฉยไหม?
  2. หากไม่เป็นเช่นนั้น Ubuntu จะย่อขนาดแคชไว้ข้างใต้ curl หรือไม่? ถ้าเป็นเช่นนั้นมีวิธีเพิกเฉยไหม?
  3. เมื่อพิจารณาถึงข้อกำหนดคุณคิดว่าอาจมีเครื่องมือเปรียบเทียบนอกเหนือจาก ab ที่สามารถตอบสนองวัตถุประสงค์ได้หรือไม่

ขอบคุณ Akshay

คำตอบ:


15

ไคลเอนต์ curl ไม่ได้แคชไฟล์ แต่เครือข่ายเซิร์ฟเวอร์ระยะไกลอาจจะดี ลองเพิ่มตัวแปรสตริงข้อความค้นหาใด ๆ ลงใน URL เพื่อดูว่าคุณสามารถทำซ้ำได้หรือไม่


ขอบคุณสำหรับคำตอบ. ฉันไม่สามารถเพิ่มสตริงการสืบค้นตามอำเภอใจเนื่องจากเซิร์ฟเวอร์ Akamai ที่ฉันใช้ไม่ยอมรับการสอบถามพารามิเตอร์! (บังคับให้เกิดข้อผิดพลาดเนื่องจากอาศัยโทเค็นย่อยของการประทับเวลาและ URL) อย่างไรก็ตามฉันสามารถสร้างโทเค็นหลายรายการสำหรับเส้นทางเดียวกัน (เป็นหลักหลาย URL) และคุณพูดถูก curl ไม่ได้แคชไฟล์ใด ๆ - เซิร์ฟเวอร์ระยะไกลคือ ไป CDN! :)
Akshaya Shanbhogue

6

ขอให้ลอง:

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

นั่นจะบอกให้เว็บเซิร์ฟเวอร์ไม่ทำการแคช ไม่หยุดเลเยอร์ด้านล่างแคชเว้นแต่จะมีการให้รหัสเพื่อเชื่อฟังส่วนหัว


0

ฉันใช้คำสั่ง curl นี้กับพารามิเตอร์แคชบัสเตอร์

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

date +%sพิมพ์วินาทีตั้งแต่ยุคถ้าคุณเรียก url มากกว่าหนึ่งครั้งใช้ครั้งที่สองdate +%s.%Nเพื่อเพิ่มในนาโนวินาที


0

คุณสามารถใช้เพิ่มสุ่มสตริงการสืบค้นโดยใช้$RANDOMตัวแปรสภาพแวดล้อม:

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

สิ่งนี้ใช้ได้กับฉันในไฟล์ gitHub ดิบ


-2

บางที DNS ของคุณกำลังแคชการแก้ปัญหาของชื่อและนี่คือเหตุผลของความแตกต่างในเวลาตอบสนอง

มันเป็นเพียงทฤษฎีเท่านั้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.