Назад | Перейти на главную страницу

Кеширует ли CURL запросы?

Это довольно длинный вопрос, так что потерпите меня.

Я хотел подчеркнуть, что мой сервер Akamai вошел в систему из экземпляра AWS. Итак, я начал тестировать ab. Однако они казались смехотворно быстрыми для загрузки видеофайлов размером ~ 3 МБ. Естественно, я хотел посмотреть, что происходит. Вот что я сделал, чтобы получить файл

завиток -v -o / dev / null

Вышеуказанное завершается за ~ 5 секунд.

Затем я снова выполнил ту же команду. На этот раз он завершился за ~ 200 мс! Естественно, интуиция подсказывает, что файл где-то кешируется.

Мои вопросы:

  1. Кеширует ли файлы curl? Если да, можно ли это игнорировать?
  2. Если curl этого не делает, абстрагирует ли ubuntu кеш под curl? Если да, можно ли это игнорировать?
  3. Учитывая требования, как вы думаете, может ли быть инструмент для тестирования, помимо ab, который мог бы служить этой цели?

Спасибо, Акшай

Клиент curl не кэширует файлы, но сеть удаленного сервера вполне может быть. Попробуйте добавить в URL-адрес произвольную строковую переменную запроса, чтобы проверить, сможете ли вы ее воспроизвести.

С опозданием попробуем:

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

Это скажет веб-серверу не кэшировать. Не останавливает уровни ниже кеширования, если он не закодирован так, чтобы подчиняться заголовкам.

Вы можете использовать добавить случайный Строка запроса с помощью то $RANDOM переменная окружения:

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

Это сработало для меня с необработанными файлами github.

Я использовал эту команду curl с параметром блокировки кеша.

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

date +%s печатает секунды с эпохи, если вы вызываете URL-адрес более одного раза за второе использование date +%s.%N добавить в наносекундах.

Возможно, ваш DNS кэширует разрешение имени, и в этом причина разницы во времени ответа.

Это всего лишь теория.