Команда Curl без використання кешу


82

Чи є спосіб сказати команді curl не використовувати кеш на стороні сервера? наприклад; У мене є така команда curl:

curl -v www.example.com

як я можу попросити curl надіслати новий запит не використовувати кеш?

Примітка : Я шукаю виконувану команду в терміналі.


1
Що змушує вас думати, що curl кешує запит?
Пекка,

Я говорю про кешування на стороні сервера; припустимо, сайт використовуєmemcache
tokhi

1
Якщо у вас є доступ до сервера, ви можете реалізувати спеціальний параметр, який обійшов кеш, інакше ні.
Alex K.

Кодуйте свою програму на стороні сервера, щоб прийняти аргумент для обходу кешу.
bufh

3
Я думаю, що Алекс говорить про те, що надсилає параметр у URL-адресу, скажімо, http://www.example.com/?caching=offви також можете надіслати власний заголовок: stackoverflow.com/questions/356705/ ... Але, звичайно, ваш серверний додаток повинен розуміти ці команди та діяти на них, вимкнення кешування. Якби хтось міг вимкнути механізми кешування віддаленого сайту, це було б прозрінням у безпеці
Пекка,

Відповіді:


164

Я знаю, що це давнє запитання, але я хотів опублікувати відповідь для користувачів із тим самим запитанням:

curl -H 'Cache-Control: no-cache' http://www.example.com

Цей сервер команд curl у своєму заголовку вимагає повернути некешовані дані з веб-сервера.


2
Чому це було проти? Для мене це чудово працювало, і це відповідає на питання.
Monkpit

1
Я згоден з Monkpit. Це чудово працює, і його слід прийняти як відповідь.
ArnaudR

9
Це іноді допомагає, але не гарантовано працює. Сервер або проксі в середині можуть проігнорувати no-cacheзапит.
Wisbucky

73

-H 'Cache-Control: no-cache'Аргумент не гарантує роботу , так як віддалений сервер або які - або проксі - шари між ними можна ігнорувати. Якщо це не працює, ви можете зробити це старомодно, додавши унікальний параметр рядка запитів. Зазвичай сервери / проксі-сервери вважають, що це унікальна URL-адреса, і не використовують кеш.

curl "http://www.example.com?foo123"

Однак вам доведеться використовувати інше значення рядка запиту щоразу. В іншому випадку сервер / проксі знову збігатимуться з кешем. Щоб автоматично генерувати інший параметр рядка запитів кожного разу, ви можете використовувати date +%s, який поверне секунди з епохи.

curl "http://www.example.com?$(date +%s)"

2
ти щойно врятував мій день!
Johnny Bui

1
Це чудова порада старої школи. Варто це вага золота. Дякую! \ o /
NYCeyes
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.