nodejs Request 모듈 Cache-Control 질문입니다.
조회수 1224회
현재 아래 URL으로 정보를 크롤링 하고 있습니다.
https://project-team.upbit.com/api/v1/disclosure?region=kr&per_page=10
문제는 실제 홈페이지에 올라오는 글보다 크롤링 내용이 5분이나 늦은 경우가 발생하는데 찾아보인 서버측에 응답 헤더에 Cache-Control 설정이 되어있는 것을 확인하였습니다
그래서 Cache 된 정보를 받지 않기위해서 Request 모듈 요청 headers 에 아래와 같이 cache-control 옵션을 넣어 요청중입니다.
headers: {
'cache-control': 'private,no-cache,no-store,must-revalidate,max-age=0',
'pragma': 'no-cache',
'expires': 0
}
그런데 여전히 지연문제가 발생중인데 설정한 cache-control 설정이 동작하지 않은 것으로 보여지는데 혹시 어떤 문제 인지 알수 있을까요?
아니면 Caching 되지않은 데이터를 요청하는 방법을 알려주시면 감사하겠습니다. 크롤링 너무 어렵네요 ㅜㅜ
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
서버의 캐싱과 별개로, 완전히 같은 요청일 땐 클라이언트에서 이전 응답을 재사용하는 경우가 있습니다.
Request
모듈도 그렇게 되어있는지는 확실하지 않지만요. 아마 응답 헤더에서 캐시를 허용해서 그런것 같긴 합니다만...url += "&time=" + (new Date()).getTime();
이렇게 URL에 매번 변하는 쿼리스트링 하나를 추가해보세요.
그나저나 'Cache-Control'은 왜 의도대로 작동하지 않는걸까요? 😒
저도 늘 겪는 문제인데요. 누구 아시는 분이 알려줬으면 좋겠네요.혹시 모르니 'cache-control'을 'Cache-Control'로 바꿔보시겠어요?
댓글 입력