2015-07-27 7 views
29

Gibt es eine Möglichkeit, dem curl-Befehl mitzuteilen, den Seitencache des Servers nicht zu verwenden? z.B. Ich habe diesen curl Befehl:Curl-Befehl ohne Verwendung des Caches

curl -v www.example.com

wie kann ich fragen curl eine neue Anfrage senden den Cache nicht zu benutzen?

Hinweis: Ich bin auf der Suche nach einem ausführbaren Befehl im Terminal.

+1

Was lässt Sie denken, dass curling die Anfrage cachiert? –

+0

Ich spreche von Server-Side-Caching; Angenommen, die Site verwendet 'memcache' – tokhi

+1

Wenn Sie Zugriff auf den Server haben, können Sie einen benutzerdefinierten Parameter implementieren, der den Cache umgeht, andernfalls nicht. –

Antwort

72

Ich weiß, das ist eine ältere Frage, aber ich wollte eine Antwort für Benutzer mit der gleichen Frage stellen:

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

Dieser curl Befehlsserver im Header Anforderung nicht zwischengespeicherten Daten aus dem Internet zurück Server.

+1

Warum wurde diese Version downvolotiert? Das hat mir super geholfen und es beantwortet die Frage. – Monkpit

+1

Ich stimme Monkpit zu. Das funktioniert gut und sollte als Antwort akzeptiert werden. – ArnaudR

+3

Dies hilft manchmal, funktioniert aber nicht garantiert. Der Server oder die Proxys in der Mitte können die Anforderung "Kein Cache" ignorieren. – wisbucky

17

Das Argument -H 'Cache-Control: no-cache' funktioniert nicht garantiert, da der Remote-Server oder dazwischenliegende Proxy-Ebenen dies ignorieren können. Wenn es nicht funktioniert, können Sie es auf altmodische Weise tun, indem Sie einen eindeutigen Querystring-Parameter hinzufügen. Normalerweise werden die Server/Proxies denken, dass es sich um eine eindeutige URL handelt, und den Cache nicht verwenden.

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

Sie müssen jedoch jedes Mal einen anderen Querystring-Wert verwenden. Andernfalls stimmen die Server/Proxies den Cache erneut ab. Um jedes Mal automatisch einen anderen Querystring-Parameter zu generieren, können Sie date +%s verwenden, wodurch die Sekunden seit der Epoche zurückgegeben werden.

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