기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
쿠키 기반의 콘텐츠 캐싱
기본적으로 요청 및 응답을 처리하거나 엣지 로케이션에 객체를 캐싱할 때는 쿠키를 고려하지 CloudFront 않습니다. Cookie
헤더에 있는 내용을 제외하고 동일한 요청을 두 개 CloudFront 받으면 기본적으로 요청을 동일한 것으로 CloudFront 취급하고 두 요청에 대해 동일한 객체를 반환합니다.
최종 사용자 요청의 쿠키 일부 또는 전체를 오리진에 전달하고 전달한 쿠키 값을 기반으로 개별 버전의 객체를 CloudFront 캐시하도록 구성할 수 있습니다. 이렇게 하면 최종 사용자 요청 (전달하도록 구성된 요청) 에서 일부 또는 모든 쿠키를 CloudFront 사용하여 캐시에 있는 객체를 고유하게 식별합니다.
예를 들어, locations.html
에 대한 요청에 country
또는 uk
값을 가진 fr
쿠키가 포함되어 있다고 가정합니다. country
쿠키 값을 기반으로 객체를 CloudFront 캐싱하도록 구성하면 는 요청을 오리진에 CloudFront 전달하고 쿠키와 해당 값을 포함합니다locations.html
. country
오리진은 반환되고locations.html
, country
쿠키의 값이 들어 있는 요청에 대해 한 번, 값이 들어 있는 요청에 대해 한 번 객체를 CloudFront 캐싱합니다. uk
fr
중요
Amazon S3 및 일부 HTTP 서버에서는 쿠키를 처리하지 않습니다. 쿠키를 처리하지 않거나 쿠키에 따라 응답이 달라지지 않는 오리진에 쿠키를 CloudFront 전달하도록 구성하지 마세요. 그러면 동일한 객체에 대해 오리진에 더 많은 요청을 전달하게 되어 성능이 저하되고 오리진의 부하가 증가할 수 있습니다. CloudFront 이전 예제를 고려할 때 오리진이 쿠키를 처리하지 않거나 country
쿠키 값에 CloudFront 관계없이 항상 동일한 버전의 to를 locations.html
반환하는 경우 해당 country
쿠키를 CloudFront 전달하도록 구성하지 마십시오.
반대로, 사용자 지정 오리진이 특정 쿠키에 의존하거나 쿠키에 따라 다른 응답을 보내는 경우에는 해당 쿠키를 오리진에 CloudFront 전달하도록 구성해야 합니다. 그렇지 않으면 요청을 오리진에 전달하기 전에 쿠키를 CloudFront 제거하세요.
쿠키 전달을 구성하려면 배포의 캐시 동작을 업데이트합니다. 캐시 동작에 대한 자세한 내용은 캐시 동작 설정(특히 쿠키 전달 및 허용 목록 쿠키 단원)를 참조하십시오.
다음 중 하나를 수행하도록 각 캐시 동작을 구성할 수 있습니다.
-
모든 쿠키를 오리진에 전달 - 뷰어가 요청을 오리진에 전달할 때 보낸 모든 쿠키를 CloudFront 포함합니다. 오리진이 응답을 반환하면 뷰어 CloudFront 요청의 쿠키 이름과 값을 사용하여 응답을 캐싱합니다. 원본 응답에
Set-Cookie
헤더가 포함된 경우 요청된 객체와 함께 헤더를 뷰어에 CloudFront 반환합니다. CloudFront 또한 오리진에서 반환된 객체로Set-Cookie
헤더를 캐시하고 모든 캐시 히트의 뷰어에게 해당Set-Cookie
헤더를 보냅니다. -
지정한 쿠키 세트 전달 - 요청을 오리진에 전달하기 전에 최종 사용자가 보낸 쿠키 중 허용 목록에 없는 모든 쿠키를 CloudFront 제거합니다. CloudFront 최종 사용자 요청에 나열된 쿠키 이름과 값을 사용하여 응답을 캐시합니다. 원본 응답에
Set-Cookie
헤더가 포함된 경우 요청된 객체와 함께 헤더를 뷰어에게 CloudFront 반환합니다. CloudFront 또한 오리진에서 반환된 객체로Set-Cookie
헤더를 캐시하고 모든 캐시 히트의 뷰어에게 해당Set-Cookie
헤더를 보냅니다.쿠키 이름에 와일드카드를 지정하는 방법에 대한 자세한 내용은 허용 목록 쿠키 단원을 참조하십시오.
각 캐시 동작에 대해 전달할 수 있는 쿠키 이름 수에 대한 현재 할당량을 확인하거나 더 높은 할당량을 요청하려면 쿼리 문자열에 대한 할당량(레거시 캐시 설정)을 참조하십시오.
-
오리진에 쿠키를 전달하지 마세요. 뷰어가 전송한 쿠키를 기반으로 객체를 캐시하지 CloudFront 않습니다. 또한 CloudFront는 오리진에 요청을 전달하기 전에 쿠키를 제거하고 최종 사용자에게 응답을 반환하기 전에 응답에서
Set-Cookie
헤더를 제거합니다.
전달하려는 쿠키를 지정할 때는 다음 사항에 유의하십시오.
- 액세스 로그
-
요청을 기록하고 쿠키를 CloudFront 기록하도록 구성하면 오리진에 쿠키를 CloudFront 전달하지 않도록 구성하거나 특정 쿠키만 CloudFront 전달하도록 구성한 경우에도 모든 쿠키와 모든 쿠키 속성을 CloudFront 기록합니다. CloudFront 로깅에 대한 자세한 내용은 을 참조하십시오표준 로그(액세스 로그) 구성 및 사용.
- 대소문자 구분
-
쿠키 이름과 값은 모두 대소문자를 구분합니다. 예를 들어 모든 쿠키를 전달하도록 구성되어 있고 동일한 객체에 대한 최종 사용자 요청 2개에 대해 대소문자를 제외한 모든 쿠키가 동일한 경우 객체를 두 번 CloudFront 캐싱합니다. CloudFront
- CloudFront 쿠키를 정렬합니다.
-
쿠키 (전체 또는 일부) 를 전달하도록 구성된 경우 CloudFront 요청을 오리진에 전달하기 전에 쿠키 이름을 기준으로 쿠키를 자연스러운 순서로 CloudFront 정렬합니다.
If-Modified-Since
및If-None-Match
-
If-Modified-Since
쿠키 (전체 또는 일부) 를 전달하도록 구성된 경우에는If-None-Match
CloudFront 조건부 요청이 지원되지 않습니다. - 표준 이름-값 페어 형식 필요
-
CloudFront 값이 표준 이름-값 쌍
형식을 준수하는 경우에만 쿠키 헤더를 전달합니다. 예를 들면 다음과 같습니다. "Cookie: cookie1=value1; cookie2=value2"
Set-Cookie
헤더 캐싱 비활성화-
쿠키를 오리진에 전달하도록 구성된 경우 CloudFront (모든 쿠키 또는 특정 쿠키 포함) 오리진 응답에서 수신한
Set-Cookie
헤더도 캐시합니다. CloudFront 이러한Set-Cookie
헤더를 원래 뷰어에 대한 응답에 포함시키고 캐시에서 제공되는 후속 응답에도 포함합니다. CloudFront오리진에서 쿠키를 수신하고 싶지만 오리진의 CloudFront 응답에
Set-Cookie
헤더를 캐시하고 싶지 않은 경우 필드Set-Cookie
이름으로 지정하는no-cache
디렉티브가 포함된Cache-Control
헤더를 추가하도록 오리진을 구성하세요. 예:Cache-Control: no-cache="Set-Cookie"
. 자세한 내용은 Hypertext Transfer Protocol(HTTP/1.1): 캐싱 표준의 응답 캐시 제어 지시문을 참조하십시오. - 쿠키 이름의 최대 길이
-
오리진에 특정 쿠키를 CloudFront 전달하도록 구성한 경우 전달하도록 구성한 모든 쿠키 이름의 총 바이트 수는 512에서 CloudFront 전달하려는 쿠키 수를 뺀 값을 초과할 수 없습니다. 예를 들어 오리진에 10개의 쿠키를 CloudFront 전달하도록 구성한 경우 10개 쿠키의 이름을 합친 길이는 502바이트 (512~10) 를 초과할 수 없습니다.
모든 쿠키를 오리진에 CloudFront 전달하도록 구성한 경우 쿠키 이름의 길이는 중요하지 않습니다.
CloudFront 콘솔을 사용하여 배포를 업데이트하여 쿠키를 오리진에 CloudFront 전달하는 방법에 대한 자세한 내용은 을 참조하십시오배포 업데이트. CloudFront API를 사용하여 배포를 업데이트하는 방법에 대한 자세한 내용은 Amazon CloudFront API 참조를 참조하십시오 UpdateDistribution.