캐시를 사용하지 않는 Curl 명령


82

서버 측 캐시를 사용하지 않도록 curl 명령을 지시하는 방법이 있습니까? 예 : 이 curl 명령이 있습니다.

curl -v www.example.com

캐시를 사용하지 않기 위해 curl에 새로운 요청을 보내도록 요청하려면 어떻게해야합니까?

참고 : 터미널에서 실행 가능한 명령을 찾고 있습니다.


1
curl이 요청을 캐싱한다고 생각하는 이유는 무엇입니까?
Pekka

저는 서버 측 캐싱에 대해 이야기하고 있습니다. 사이트가 사용하는 가정memcache
tokhi

1
서버에 대한 액세스 권한이있는 경우 캐시를 우회하는 사용자 지정 매개 변수를 구현할 수 있습니다. 그렇지 않으면 아니요.
Alex K.

캐시를 우회하는 인수를 허용하도록 서버 측에서 애플리케이션을 코딩하십시오.
bufh

3
Alex가 말하는 것은 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.는 epoch 이후 초를 반환합니다.

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

2
당신은 내 하루를 구했습니다!
조니 부이

1
이것은 훌륭한 구식 팁입니다. 금의 무게만큼 가치가 있습니다. 감사합니다! \ o /
NYCeyes
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.