Curl не кэширует запросы на стороне клиента; поэтому любое кэширование при использовании Curl происходит на стороне сервера. Чтобы обойти кэш на стороне сервера, вы можете использовать HTTP-заголовок Cache-Control для управления поведением кэша. Заголовок HTTP Cache-Control доступен только в HTTP 1.1, а для обратной совместимости с системами, которые все еще используют HTTP 1.0, вы можете использовать заголовок 'Pragma: no-cache'.
1 2 3 4 | curl https://example.com/echo -H "Cache-Control: no-cache, no-store, must-revalidate" -H "Pragma: no-cache" -H "Expires: 0" |
Пример отправки запроса без кэша в Curl
Что такое Curl?
Curl - это инструмент командной строки для передачи данных с клиента на сервер. С помощью Curl вы можете загружать или скачивать данные, используя протоколы HTTP, HTTPS, SCP, SFTP и FTP. Он поддерживает ограничение пропускной способности, поддержку прокси, аутентификацию пользователей, SSL, проверку сертификатов и HTTP-куки. Curl работает на всех современных платформах, включая Windows, Linux и macOS.
Что такое кэш?
Кэш - это временное устройство хранения в вычислительной среде, обычно используемое для хранения данных. Кэш - это небольшой объем более быстрой и дорогой памяти, используемый для ускорения работы с недавними или часто используемыми данными. Данные кэша хранятся на локальных носителях, отдельно от основного хранилища, доступного клиенту кэша. Кэш обычно используется центральным процессором (CPU), веб-браузерами, приложениями и операционными системами. Кэш используется потому, что объемное или основное хранилище не может удовлетворить потребности клиентов. Кэш сокращает время доступа к данным, уменьшает задержки и улучшает ввод/вывод (I/O). Поскольку почти все рабочие нагрузки приложений зависят от операций ввода-вывода, процесс кэширования повышает производительность приложений.
Пример использования Curl без кэша
Ниже приведен пример использования Curl без кэша:
Добавление HTTP-заголовка Cache-Control
Мы можем использовать HTTP-заголовок Cache-Control как в HTTP-запросах, так и в ответах, чтобы управлять поведением кэша. Нам нужно предоставить директивы под этим заголовком и некоторые директивы, которые могут быть нам интересны:
- no-cache: параметр приводит к повторной проверке кэша с исходным ресурсом перед отправкой ответа
- no-store: параметр указывает, что ответ на этот запрос вообще не должен кэшироваться
1 2 | curl https://example.com/echo -H "Cache-Control: no-cache, no-store" |
Добавление заголовка Pragma HTTP
HTTP - заголовок Cache-Control появился только в HTTP 1.1. Для обратной совместимости с системами, которые все еще используют HTTP 1.0, мы можем использовать заголовок Pragma:
1 2 | curl https://example.com/echo -H "Pragma: no-cache" |