Чи запитує кеш-пам'ять CURL?


19

Це досить довге питання, тож потерпіть зі мною.

Я хотів наголосити на тому, що мій сервер Akamai, який увійшов із екземпляра AWS Отже, я почав виконувати показник ab. Однак вони здавалися смішними швидко завантажувати ~ 3 Мб відеофайлів. Природно, мені хотілося подивитися, що відбувається. Це те, що я зробив, щоб отримати файл

curl -v -o / dev / null

Вищезазначене завершено за ~ 5 секунд.

Далі я знову запустив ту саму команду. Цього разу він завершився за ~ 200 мс! Звичайно, моя інтуїція говорить, що файл десь кешується.

Мої запитання:

  1. Чи файли кешу згортання? Якщо так, чи існує спосіб ігнорувати це?
  2. Якщо curl не виконує, чи ubuntu абстрагує кеш-пам'ять під curl? Якщо так, чи існує спосіб ігнорувати це?
  3. З огляду на вимоги, чи вважаєте ви, чи не може бути інструмент порівняльного аналізу крім ab, який міг би служити цілі?

Дякую, Акшай

Відповіді:


15

Клієнт curl не кешує файли, але цілком може бути мережа віддаленого сервера. Спробуйте додати до URL довільну змінну рядка запиту, щоб побачити, чи можете ви її відтворити.


Спасибі за вашу відповідь. Я не зміг додати довільну рядок запиту, оскільки сервер Akamai, який я використовую, не приймає жодних параметрів запитів! (вимушує помилку, оскільки вона покладається на дайджест засоленої лексеми часової позначки та URL-адреси). Однак я зміг генерувати кілька маркерів за один і той же шлях (по суті, декілька URL-адрес), і ви абсолютно праві. curl не кешував жодного файлу - віддалений сервер був. Іди CDN! :)
Akshaya Shanbhogue

6

Спізно спробуйте:

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

Це скаже веб-серверу не кешувати. Не зупиняє шари нижче кешування, якщо тільки не закодовано виконувати заголовки.


0

Я використав цю команду curl з параметром Buster кешу.

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 кешує роздільну здатність імені, і це є причиною різниці у часі відповіді.

Це лише теорія.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.