빠른 CloudFlare '새로운 사용자'질문 :
배경 : 오리진 서버에서 제공하는 HTML 페이지는 변경되지 않습니다. 모든 동적 컨텐츠는 페이지가 사용자의 브라우저에로드 된 후 JavaScript를 통해 다운로드됩니다. JavaScript에서 파생 된 동적 내용은 URL의 쿼리 문자열에 부분적으로 의존하지만 쿼리 문자열 자체는 원래 다운로드 한 HTML 내용에 영향을 미치지 않습니다. 따라서 다음 URL은 모두 브라우저에서 JavaScript에 의해 작동되기 전에 원본에서 정확히 동일한 HTML을 생성 합니다.
https://www.example.com/private/my-investments?portfolioID=296
https://www.example.com/private/my-investments?portfolioID=325
https://www.example.com/private/my-investments?portfolioID=319
질문 : CloudFlare가 기본적으로 HTML을 캐시하지 않는 경우 https://www.example.com/private/my-investments 의 단일 캐시 사본이 모든 사용자에게 반환 되도록 페이지 규칙을 어떻게 구성해야합니까? ? 내가 시도한 것은 다음과 같습니다.
"CACHE EVERYTHING :" 'Cache Everything'지시문을 사용하면 HTML이 캐시되지만 (좋은) 전체 쿼리 문자열을 캐시 키의 일부 (나쁜)로 사용합니다. 따라서 사용자가 다음 URL을 방문하면 ...
https://www.example.com/private/my-investments?portfolioID=296
... 그리고 10 초 후에 다음과 같이 다른 쿼리 문자열을 사용하여 동일한 URL에 도달합니다.
https://www.example.com/private/my-investments?portfolioID=325
... CloudFlare는 후자의 요청을 캐시 MISS (cf-cache-status : MISS)로 취급하고 다시 오리진 서버에 도달합니다. 이는 원본에서 반환 된 HTML이 두 URL에서 동일하다는 사실에도 불구하고
"IGNORE QUERY STRING CACHING :" "IGNORE QUERY STRING CACHING"옵션을 선택하여이 문제를 해결할 것이라고 생각했습니다. 그러나 페이지 규칙에서이 옵션을 사용하면 HTML이 전혀 캐시되지 않습니다. .js, .css 및 .png 파일 만 캐시됩니다. 그리고 다시 한 번 HTML 데이터에 대한 모든 단일 호출에 대해 내 원점을 얻습니다. :(
나는 분명한 것을 놓치고 있어야한다고 생각합니다. 이견있는 사람?
업데이트 : 내가 당신에게 달릴 아이디어가있었습니다. 내부 URL 체계를 '대신'# '을 사용하도록 변경하여이 문제를 해결할 수 있습니까? 따라서 같은 URL 대신 ...
https://www.example.com/private/my-investments?portfolioID=296
.. 나는 다음과 같은 것을 사용합니다 :
https://www.example.com/private/my-investments#portfolioID=296
이렇게하면 쿼리 문자열 파라미터가 CloudFlare로 전혀 전송되지 않습니다. 어떻게 생각하십니까?
페스 투스