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.


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.


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)"

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.