Comando Curl sin usar caché

82

¿Hay alguna manera de decirle al comando curl que no use la caché del lado del servidor? p.ej; Tengo este comando curl:

curl -v www.example.com

¿Cómo puedo pedirle a curl que envíe una nueva solicitud para no usar el caché?

Nota : estoy buscando un comando ejecutable en la terminal.

tokhi
fuente
1
¿Qué te hace pensar que curl está almacenando en caché la solicitud?
Pekka
Me refiero al almacenamiento en caché del lado del servidor; supongamos que el sitio está usandomemcache
tokhi
1
Si tiene acceso al servidor, puede implementar un parámetro personalizado que omita el caché, de lo contrario, no.
Alex K.
Codifique su aplicación en el lado del servidor para aceptar un argumento para omitir la caché.
bufh
3
Creo que de lo que Alex está hablando es de enviar un parámetro en la URL, digamos http://www.example.com/?caching=offque también podría enviar un encabezado personalizado: stackoverflow.com/questions/356705/… Pero, por supuesto, su aplicación del lado del servidor tiene que entender esos comandos y actuar sobre ellos desactivando el almacenamiento en caché. Si alguien pudiera deshabilitar los mecanismos de almacenamiento en caché de un sitio remoto, sería un enorme agujero de seguridad
Pekka

Respuestas:

164

Sé que esta es una pregunta anterior, pero quería publicar una respuesta para los usuarios con la misma pregunta:

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

Este servidor de comando curl en su encabezado solicita devolver datos no almacenados en caché del servidor web.

estoico bebé
fuente
2
¿Por qué se votó en contra? Esto funcionó muy bien para mí y responde la pregunta.
Monkpit
1
Estoy de acuerdo con Monkpit. Esto funciona muy bien y debe aceptarse como la respuesta.
ArnaudR
9
Esto ayuda a veces, pero no se garantiza que funcione. El servidor o los proxies en el medio pueden ignorar la no-cachesolicitud.
wisbucky
73

No -H 'Cache-Control: no-cache'se garantiza que el argumento funcione porque el servidor remoto o las capas de proxy intermedias pueden ignorarlo. Si no funciona, puede hacerlo a la antigua, agregando un parámetro de cadena de consulta único. Por lo general, los servidores / proxies pensarán que es una URL única y no usarán la caché.

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

Sin embargo, debe usar un valor de cadena de consulta diferente cada vez. De lo contrario, el servidor / proxies volverá a coincidir con el caché. Para generar automáticamente un parámetro de cadena de consulta diferente cada vez, puede usar date +%s, que devolverá los segundos desde época.

curl "http://www.example.com?$(date +%s)"
Wisbucky
fuente
2
¡Me acabas de salvar el día!
Johnny Bui
1
Este es un gran consejo de la vieja escuela. Vale su peso en oro. ¡Gracias! \ o /
NYCeyes