IBM Cloud Docs
캐싱

캐싱

캐싱은 고객에게 파일을 제공할 때 응답 시간을 개선하기 위해 엣지 서버에 파일을 저장하는 프로세스입니다. 캐싱은 파일을 사용자와 가까운 곳에 저장함으로써 데이터가 네트워크를 통해 이동하는 데 걸리는 시간, 즉 지연 시간을 줄여줍니다.

기본적으로 CIS 은 여러 유형의 이미지 및 텍스트 파일(HTML이 아닌 파일)을 포함하는 정적 파일을 캐시합니다. 캐시에는 웹사이트의 파일만 포함되며 소셜 네트워킹 사이트의 파일과 같은 타사 리소스는 포함되지 않습니다. 현재 CIS 은 MIME 유형에 따라 캐싱하지 않습니다.

CIS 는 일반적으로 동적으로 간주되기 때문에 기본적으로 HTML 파일을 캐시하지 않습니다. 그러나 정적 HTML을 동적 HTML과 명확하게 구분할 수 있는 경우 페이지 규칙을 사용하여 HTML 파일을 캐싱할 수 있습니다.

캐시된 파일에는 TTL(Time-to-Live) 이라고 하는 지정된 만료 시간이 있으며, 이 시간이 지나면 캐시에서 삭제됩니다. 언제든지 캐시에서 파일을 수동으로 제거할 수도 있습니다. 파일이 삭제된 후 CIS 은 원본 서버로 돌아가 파일을 다시 로드하고 캐시를 최신 버전으로 업데이트합니다.

캐시 설정 및 옵션에 대한 자세한 내용은 캐싱과 함께 페이지 규칙 사용을 참조하세요.

기본 캐싱 동작

CIS 방문자의 위치, 방문자가 연결하는 CIS 데이터 센터, 해당 데이터 센터에서 리소스가 요청되는 빈도에 따라 정적 콘텐츠를 캐시합니다.

캐싱은 요청을 처리하는 CIS 데이터 센터 내에서만 이루어집니다. 다음 리소스는 CIS 에 의해 캐시되지 않습니다:

  • 외부 사이트 또는 타사 리소스
  • 프록시되지 않은 DNS 레코드에서 호스팅되는 콘텐츠

기본적으로 CIS 은 엣지 캐시 TTL 페이지 규칙이 이를 재정의하지 않는 한 원본 웹 서버의 캐시 헤더를 존중합니다:

  • CIS 는 cache-control 헤더가 private, no-store, no-cache, max-age=0 로 설정되어 있거나 응답에 쿠키가 있는 경우 리소스를 캐시하지 않습니다.
  • CIS 는 cache-controlpublic 이고 max-age 가 0보다 크거나 만료 헤더에 미래 날짜가 지정되어 있는 경우 리소스를 캐시합니다.
  • max-ageexpires 헤더가 모두 설정되어 있으면 max-age 이 우선합니다.

cache-control 지시문과 expires 헤더가 모두 존재하지 않으면 CIS 은 다음과 같은 기본 에지 캐시 TTL을 사용하여 특정 HTTP 응답 코드를 캐시합니다:

기본 캐시 응답 코드
응답 코드 TTL
200, 206, 301 120m
302, 303 20m
404, 410 3미터
403 1m

CIS 는 캐싱을 사용자 지정할 수 있는 몇 가지 옵션을 제공합니다:

  • CIS 페이지 규칙을 사용하여 개별 URL에 대한 캐싱 동작을 설정합니다.
  • CIS 엣지 함수 또는 API를 사용하여 캐싱을 사용자 지정하세요.
  • CIS CLI를 통해 캐싱 수준, TTL 등을 조정하세요.

CIS 에서 캐시하는 최대 파일 크기는 평가판 및 Standard Next 고객의 경우 512MB, Enterprise 고객의 경우 5GB입니다. 기업 고객은 지원 케이스를 열어 대용량 파일 캐싱을 요청할 수 있습니다.

기본적으로 캐시된 파일 확장자

CIS 파일 확장자를 사용하여 콘텐츠를 캐시합니다. 다음 파일 확장자는 자동으로 캐시됩니다.

기본적으로 캐시된 파일 확장자
파일 확장자
bmp
class
css
csv
doc
docx
ejs
eot
eps
gif
ico
jar
jpg
js
mid
midi
otf
pdf
pict
pls
png
ppt
pptx
ps
svg
svgz
swf
tif
tiff
ttf
webp
woff
woff2
xls
xlsx

CIS 는 MIME 유형에 따라 콘텐츠를 캐시하지 않으며 기본적으로 HTML 페이지를 캐시하지 않습니다. 하지만 웹사이트의 robots.txt 파일을 자동으로 캐시합니다. HTML 페이지와 같은 추가 콘텐츠를 캐시하려면 사용자 정의 페이지 규칙을 설정하여 캐시되는 항목을 제어할 수 있습니다.

시간이 경과된 컨텐츠 제공

시간이 경과된(stale) 컨텐츠 제공을 사용하면 서버가 작동 중지될 경우 사이트의 제한된 버전이 온라인 상태로 유지됩니다. 콘텐츠가 만료되더라도 원본 서버가 오프라인 상태일 때 CIS 에서 캐시된 콘텐츠를 사용자에게 계속 제공합니다.

CIS 캐시 응답 이해

CF-Cache-Status 헤더의 출력은 리소스가 캐시되었는지 여부를 표시합니다.

캐시 응답 코드 및 정의
응답 코드 정의
HIT 리소스는 CIS 캐시에서 발견되었습니다.
MISS 리소스가 CIS 캐시에서 발견되지 않았으며 원본 웹 서버에서 제공되었습니다.
EXPIRED 리소스가 캐시에서 발견되었지만 이후 만료되어 원본 웹 서버에서 제공되었습니다.
STALE 리소스가 캐시에서 제공되었지만 만료되었습니다. CIS 가 업데이트된 리소스를 검색하기 위해 원본에 연락할 수 없었습니다.
BYPASS 오리진 서버는 CIS 에 no-cache, private 또는 max-age=0 로 설정된 cache-control 헤더를 사용하여 캐시를 우회하도록 지시했습니다. BYPASS 는 오리진 cache-control 을 활성화하면 반환됩니다. CIS 또한 원본 웹 서버가 응답 헤더에 쿠키를 보낼 때 BYPASS 를 설정합니다.
REVALIDATED 리소스가 캐시에서 제공되지만 오래된 리소스입니다. 리소스가 If-Modified-Since 헤더 또는 If-None-Match 헤더에 의해 재검증되었습니다.
UPDATING 리소스가 캐시에서 제공되었지만 만료되었습니다. 원본 웹 서버에서 리소스를 업데이트 중입니다. UPDATING 은 일반적으로 인기 있는 캐시된 리소스에만 표시됩니다.
DYNAMIC 리소스가 기본적으로 캐시되지 않았으며 현재 CIS 캐싱 구성에서 CIS 에 리소스를 캐시하도록 지시하지 않습니다. 대신 오리진 웹 서버에서 리소스를 요청했습니다. 페이지 규칙을 사용하여 사용자 정의 캐싱 옵션을 구현합니다.

조회 문자열 정렬 사용

기업 전용: CIS 쿼리 문자열의 순서가 다른 URL은 캐시에서 별도의 파일로 취급합니다. 예를 들어 한 사용자가 요청하는 경우

/video/123456?title=0&byline=0&portrait=0&color=987654

및 다른 요청:

/video/123456?byline=0&color=987654&portrait=0&title=0

CIS 은 파일이 이미 캐시된 경우에도 원본에서 파일을 다시 가져옵니다.

쿼리 문자열 정렬 기능은 캐싱 '전'에 쿼리 문자열을 정렬하여 캐시 적중률을 높입니다. 캐싱 페이지의 토글을 사용하여 쿼리 문자열 정렬을 사용 설정할 수 있습니다.