서버측 캐시를 사용하지 않고 cURL을 호출하려면 어떻게 해야 합니까?
서버의 사이드 캐시를 사용하지 않도록 cURL 명령어에 지시하는 방법이 있습니까?예: 다음과 같은 컬 명령이 있습니다.
curl -v www.example.com
캐시를 사용하지 않도록 새로운 요청을 보내려면 어떻게 해야 하나요?
메모: 단말기에서 실행 가능한 명령어를 찾고 있습니다.
오래된 질문인 것은 알지만, 같은 질문으로 사용자를 위해 답변을 게시하고 싶습니다.
curl -H 'Cache-Control: no-cache' http://www.example.com
이 curl 명령어는 웹 서버에서 캐시되지 않은 데이터를 반환하도록 헤더에서 서버를 요구합니다.
그-H 'Cache-Control: no-cache'원격 서버 또는 그 사이의 프록시 계층이 인수를 무시할 수 있기 때문에 인수가 작동하지 않을 수 있습니다.동작하지 않는 경우는, 독자적인 쿼리 스트링 파라미터를 추가하는 것으로, 종래의 방법으로 작업을 실시할 수 있습니다.일반적으로 서버/프록시는 고유 URL로 간주하여 캐시를 사용하지 않습니다.
curl "http://www.example.com?foo123"
단, 매번 다른 쿼리 문자열 값을 사용해야 합니다.그렇지 않으면 서버/프록시가 캐시와 다시 일치합니다.매번 다른 쿼리 문자열 매개 변수를 자동으로 생성하려면date +%sepoch 이후의 초수를 반환합니다.
curl "http://www.example.com?$(date +%s)"
둘 다 아니다.-H 'Pragma: no-cache'도 아니다-H 'Cache-Control: no-cache'날 도와줬어"cmd+shift+r"(완전 새로고침)을 사용하는 브라우저에서 다음 출력보다 새로운 버전이 표시되었습니다.curl단말기로.
직접 디버깅하는 방법
동일한 결과를 얻기 위해 [browser]> [ F12 ( Dev Tools ) ]> [ Network / Requests ]> [ Requests ]> [ Requests ]> [ Copy as cURL ]를 오른쪽 클릭하여 브라우저 콜에 대응하는 cURL 명령어를 가져옵니다.
그리고 그것을 단말기에 붙이고 하나씩 떼어내기 시작했는데, 놀랍게도 그것이 발견되었습니다.--compressed(CloudFront AWS에 문의)
캐시를 강제로 보유하지 않도록 하기 위해 다음과 같은 방법을 시도해 볼 수 있습니다.curl.
주의: 서버는 다음과 같이 설정할 수 있습니다.Cache-Controlheader를 클릭합니다.따라서 이 방법을 사용할 수 있을지는 서버 또는 웹 사이트에 따라 달라집니다.HTTP요청하다
curl 명령어와 Cache-Control 헤더
$ curl -H 'Cache-Control: no-cache, no-store' http://www.example.com
Pragma HTTP 헤더 추가
$ curl -H 'Pragma: no-cache' http://www.example.com
마지막으로 가장 일반적인 방법은 URL을 변경하여 캐시를 바이패스하는 것입니다.
curl -H 'Cache-Control: no-cache, no-store' http://www.example.com?$(date +%s)
문제는 쿼리 문자열에 작은 따옴표를 사용해야 한다는 것입니다.
내 코드
if (event.queryStringParameters && event.queryStringParameters['Name']) {
responseMessage = 'Hello, ' + event.queryStringParameters['Name'] + '!';
}
나의 요구
curl https://cssrq1srud.execute-api.us-east-1.amazonaws.com/serverless_lambda_stage/hello?Name=Terraform
돌아온다zsh: no matches found
curl 'https://cssrq1srud.execute-api.us-east-1.amazonaws.com/serverless_lambda_stage/hello?Name=Terraform'
돌아온다{"message":"Hello, Terraform!"}
이것은 나에게 효과가 없었다.
curl -H 'Cache-Control: no-cache' http://www.example.com
하지만 결국 성공했습니다.
curl -H 'Cache-Control: no-cache' http://www.example.com&someFakeParam=$RANDOM
&some Fake Param=$RANDOM은 매번 URL을 고유하게 만들고 캐시를 바이패스합니다.
언급URL : https://stackoverflow.com/questions/31653271/how-to-call-curl-without-using-server-side-cache
'programing' 카테고리의 다른 글
| Bash에서 여러 줄 문자열을 출력하려면 어떻게 해야 합니까? (0) | 2023.04.20 |
|---|---|
| 상호 또는 순환(순환) 가져오기를 사용하면 어떻게 됩니까? (0) | 2023.04.20 |
| Visual Studio 코드 터미널, 관리자 권한으로 명령을 실행하는 방법 (0) | 2023.04.20 |
| POI에서 Excel 워크시트 복사 (0) | 2023.04.20 |
| UI 스레드의 디스패처를 입수하려면 어떻게 해야 합니까? (0) | 2023.04.20 |