2012-02-19 5 views
13

저는 현재 Akamai를 CDN으로 사용하고 있지만, 브라우저에서 내용을 캐싱하고있는 것으로 나타났습니다. 브라우저가 images/css/js를 캐시하는 것은 좋지만, 브라우저에 이 아닌 캐시가 있지만 Akamai에서 캐시하는 방법이 있는지 알고 싶습니다.CDN에 있지만 브라우저에는 캐시가 없습니다.

Cache-Control: public, must-revalidate, max-age=300 
Expires: Sun, 19 Feb 2012 19:04:30 GMT 
Date: Sun, 19 Feb 2012 18:59:30 GMT 

아카 마이는 이러한 헤더 명예뿐만 아니라 바로 사용자에게 다시 전달합니다 :

지금, 지금 내 원점에서 나는 다음과 같은 헤더를 보냅니다. 이렇게하면 브라우저가 실제로 콘텐츠도 캐시 할 수 있습니다.

대부분의 경우에 잘 작동하지만 사용자가 로그인 한 경우 CDN 캐시를 우회하여 원본으로 바로 이동할 수있는 CDN 로직도 있습니다.

따라서, 승인되지 않은 사용자가 클릭 "로그인"에 있다고 가정하면 로그인 프로세스를 통해 전송되어 동일한 페이지로 되돌아갑니다. CDN이이 페이지의 출처에서 요청하더라도 브라우저는 실제로 동일한 페이지를 다시 요청하며 로그인이 작동하지 않는 것처럼 보입니다.

이제 로그인 프로세스에서? l = 1 또는 무엇인가와 같은 쿼리 매개 변수를 추가하도록 할 수 있지만 더 좋은 방법이 있어야합니다.

Akamai가 Cache-Control 헤더를 하드 코딩 된 no-cache 값으로 덮어 쓸 수 있는지 궁금하지만,이를 원천적으로 수행 할 방법이 있는지 궁금합니다.

감사합니다.

+1

왜 브라우저가 콘텐츠를 캐시하지 않도록 하시겠습니까? –

+2

그는 사용자가 로그인 할 때 브라우저가 페이지를 다시 다운로드하기를 원하기 때문에 아마도 사용자가 개인화 된 페이지를 보게 될 것이며 다른 사람들이 얻을 수있는 것과 동일한 HTML을 볼 수 없기 때문일 수 있습니다. –

답변

1

Akamai는 Akamai 서버 내에서 일반적인 Cache-Control : 및 Expires : 헤더와 다른 캐싱 동작을 설정하는 방법을 제공합니다. Akamai Edge Server가 원본 서버에서 전달할 수있는 사용자 지정 헤더가있어 브라우저에 콘텐츠를 전달할 때이를 따르고 따릅니다. 이 정보는 Akamai 포털 문서에서 사용할 수 있습니다.

사용자가 로그인했는지 여부에 따라 동작을 변경하고자 할 수 있습니다. 객체가 로그인 한 사용자의 브라우저에 전달 될 때 객체가 캐시를 우회하는지 아니면 쿠키 값을 사용하여 캐시 키 (객체가 Akamai 서버에 의해 참조되는 방식)를 수정할 수 있는지 물어볼 수 있습니다. 여기 Akamai와 도움을 청합니다.

개인화 된 항목을 다른 사용자가 Akamai 캐시에서 볼 수 없도록하려면주의해야합니다. 의심스러운 경우 조심해야하며 Akamai가 객체를 캐시하지 못하게하십시오.

19

Akamai에는 Cache-Control과 동일한 형식의 "Edge-control"이라는 헤더가 있습니다. 양의 최대 유효 기간을 가진 Edge 컨트롤을 지정한 다음 Cache-Control을 "no-cache, no-store"로 설정할 수 있습니다. 이것은 당신이 원하는 것을 얻는다.

캐시 할 페이지의 Edge-control 헤더를 보낼 때 항상 값 앞에 "! no-store"를 사용하여 Akamai가 캐시하도록하십시오. 예를 들어 형식은 "! no-store, max-age = 1234"입니다.

+0

관련 사용 사례 - https://community.akamai.com/thread/2704 –

관련 문제