캐시 헤더 분석기

URL의 HTTP 캐싱 헤더를 분석합니다. Cache-Control, Expires, ETag, Last-Modified, Vary, Age 및 일반적인 CDN 캐시 신호를 검사하여 브라우저 대 공유 캐시 동작을 이해합니다. 리디렉션 추적, 원시 헤더 보기, 필터링, 문제 발견, JSON/PDF 내보내기를 포함합니다.

Loading…

소개 캐시 헤더 분석기

URL을 붙여넣고 즉시 캐싱 방식을 이해하세요: 브라우저 지시문, 공유 CDN/프록시 캐싱 (s-maxage, 서로게이트 컨트롤), 유효성 검사기 (ETag/Last-Modified), 재검증 패턴 (stale-while-revalidate, stale-if-error). 성능 디버깅, 실수로 인한 HTML 캐싱 방지, 정적 자산 캐시 정책 확인에 사용하세요.

기능

  • 명확한 점수 카드와 발견 사항을 포함한 URL 기반 캐시 감사 (캐싱/성능 헤더에 초점).
  • 리디렉션 추적 (최대 10회)으로 캐싱 규칙이 실제로 적용되는 위치 확인.
  • 완전한 투명성을 위한 원시 헤더 보기 (서버/CDN이 실제로 반환한 내용).
  • 캐시 분석 하이라이트: Cache-Control 지시문, Expires/Pragma 및 충돌.
  • 유효성 검사기 확인: ETag 및 Last-Modified 감지 (조건부 요청 및 재검증용).
  • Vary 분석으로 누락되거나 위험한 Vary 동작 포착 (특히 개인화된 콘텐츠용).
  • CDN 신호 감지: Age, Via, CF-Cache-Status, X-Cache, Fastly/Akamai/CloudFront 스타일 헤더.
  • 필터 및 '문제만 보기' 모드로 신속하게 실행 가능한 문제에 집중.
  • 결과를 JSON 및 PDF 보고서로 내보내기 (감사 및 클라이언트 전달물에 적합).
  • HEAD 우선 탐색 (GET으로 폴백)으로 대역폭을 최소화하면서 호환성 유지.

🧭 사용 방법 for cache-headers-analyzer

1

URL 입력

감사하려는 전체 URL을 붙여넣으세요 (예: [https://example.com/static/app.css](https://example.com/static/app.css)).

2

요청 동작 선택

빠른 검사를 위해 'HEAD 먼저 시도 (GET으로 폴백)'을 활성화 상태로 유지하세요. URL이 리디렉션될 수 있는 경우 (HTTP→HTTPS, www, CDN 등) '리디렉션 따르기'를 활성화하세요.

3

분석기 초점 선택

균형 잡힌 보기를 위해 '자동 (권장)'을 사용하세요. 엔드포인트에 가장 관련성 높은 발견 사항을 우선시하려면 '브라우저 캐싱', 'CDN / 프록시 캐싱' 또는 'API 캐싱'으로 전환하세요.

4

발견 사항 및 헤더 카테고리 검토

먼저 점수/발견 사항을 검사한 다음, 캐시 지시문, 유효성 검사기 (ETag/Last-Modified), Vary 분석, CDN 신호 (Age, 캐시 상태 헤더)를 자세히 살펴보세요. 전체 응답이 필요한 경우 '원시 헤더 표시'를 켜세요.

5

보고서 내보내기

자동화를 위해 JSON 보고서를 다운로드하거나 감사 및 팀원/클라이언트와 공유를 위해 PDF 보고서를 다운로드하세요.

기술 사양

요청 모델

이 도구는 선택적 리디렉션 추적을 포함한 URL 헤더 검사를 수행합니다. 가능한 경우 HEAD 요청을 먼저 시도하고 필요 시 GET으로 폴백합니다.

설정동작기본값
HEAD 우선 시도 (GET으로 대체)HEAD를 사용해 헤더를 빠르게 가져옴; HEAD가 지원되지 않거나 불충분할 경우 GET으로 대체활성화됨
리디렉션 따르기리디렉션 체인을 따라 최종 캐싱 동작을 검사활성화됨
최대 리디렉션 횟수무한 루프 방지를 위한 리디렉션 상한10 (범위 0–20)
타임아웃요청 타임아웃 제한15000 ms
사용자 에이전트요청 사용자 에이전트를 식별Encode64Bot/1.0 (+[https://encode64.com](https://encode64.com))
사설 네트워크안전을 위해 사설 네트워크 범위 접근 차단비활성화됨 (사설 네트워크 허용 안 됨)

분석된 헤더 및 신호

분석기는 캐시 의미론(브라우저 및 공유 캐시)과 일반적인 CDN 에지 신호에 초점을 맞춥니다.

범주예시
캐시 지시어Cache-Control, Expires, Pragma, Surrogate-Control, CDN-Cache-Control
검증자ETag, Last-Modified (조건부 요청/재검증에 사용)
공유 캐시 동작s-maxage, stale-while-revalidate, stale-if-error (Cache-Control에 있을 경우)
Vary 동작Vary (캐시 키 변형 및 개인화 안전성)
CDN/프록시 신호Age, Via, CF-Cache-Status, X-Cache, X-Cache-Hits, Server-Timing 및 기타 에지 힌트
일부 CDN 헤더는 벤더별로 다릅니다; 존재 여부와 의미는 공급자 및 구성에 따라 달라질 수 있습니다.

휴리스틱 (경고를 트리거하는 조건)

결과는 누락되거나 모순되거나 약한 캐싱 정책을 발견하는 데 도움이 되는 실용적인 캐싱 휴리스틱에서 도출됩니다.

휴리스틱검사 내용
Cache-Control 누락Cache-Control이 없을 때 경고
충돌하는 지시문지시문이 일관되지 않을 때 경고 (예: 혼합된 캐싱 의도)
유효성 검사기 누락캐시 가능한 응답에 ETag/Last-Modified가 없을 때 경고
약한 유효성 검사기관련된 약한 유효성 검사기 패턴을 표시
Vary 위험변화가 필요할 것으로 보이는 곳에 Vary가 누락된 것 같을 때 경고
Pragma no-cache 불일치Pragma: no-cache가 해당 Cache-Control 없이 나타날 때 경고

분류 (정적 vs HTML vs API)

분석기는 URL 경로에서 콘텐츠 유형 의도를 추론하여 캐싱 권장 사항을 맞춤화할 수 있습니다.

클래스경로 패턴 (예시)
정적 자산.css, .js, .png, .svg, .woff2 등
HTML.html, .htm
API/api/로 시작하거나 .json으로 끝나는 경로
URL이 이러한 패턴과 일치하지 않으면 '분석기 포커스'를 사용하여 권장 사항을 조정하세요.

명령줄

로컬에서 캐시 헤더를 검사하려면 이 CLI 스니펫을 사용하세요. 이 도구의 결과/점수를 대체하지는 않지만 결과를 빠르게 재현하는 데 도움이 됩니다.

macOS / Linux

HEAD 요청으로 헤더 가져오기

curl -I [https://example.com/static/app.css](https://example.com/static/app.css)

본문을 다운로드하지 않고 Cache-Control, Expires, ETag, Last-Modified, Vary 및 CDN 신호를 확인합니다.

리디렉션을 따르고 헤더 표시

curl -IL [https://example.com/](https://example.com/)

리디렉션 체인을 표시하여 캐싱 지시문이 변경되는 위치를 확인할 수 있습니다.

Run

Windows (PowerShell)

응답 헤더 가져오기

(Invoke-WebRequest -Uri [https://example.com/static/app.css](https://example.com/static/app.css) -Method Head).Headers

Cache-Control, ETag, Last-Modified 및 벤더 CDN 헤더(존재할 경우)를 포함한 헤더 목록을 표시합니다.

해시된 파일명(app.abc123.css)을 가진 정적 에셋의 경우, 변경 불가능(immutable) 옵션과 함께 장기 캐싱을 권장합니다. HTML의 경우, 개인화된 페이지가 오래된 상태로 제공되는 것을 방지하기 위해 보수적인 캐싱 정책을 적용하세요.

사용 사례

정적 에셋 캐싱 감사 (CSS/JS/이미지/폰트)

지문이 적용된(fingerprinted) 에셋이 장기간 캐싱 가능하며 필요 시 효율적으로 재검증될 수 있는지 확인합니다.

  • Cache-Control에 긴 max-age 및 (적절한 경우) immutable이 포함되어 있는지 확인
  • 안전한 재검증을 위한 검증자(ETag 또는 Last-Modified)가 존재하는지 확인
  • CDN 캐시 적중 지표(Age, CF-Cache-Status, X-Cache) 확인
Cache-Control: public, max-age=31536000, immutable
ETag: "686897696a7c876b7e"
Vary: Accept-Encoding

HTML 페이지의 우발적 캐싱 방지

CDN 또는 브라우저 수준에서 HTML 페이지가 지나치게 공격적으로 캐싱되어 로그인 흐름, 개인화 및 SEO 렌더링 일관성을 해칠 수 있는 경우를 포착합니다.

  • HTML에 대한 지나치게 허용적인 Cache-Control 탐지
  • 콘텐츠가 쿠키, 인증 또는 언어에 따라 달라지는 경우 누락된 Vary 식별
  • 안전한 재검증 패턴 확인

API 엔드포인트 캐싱 검토

API 응답에 대해 공유 캐시가 활성화되어 있는지, 그리고 API가 안전하게 캐싱 가능한지 이해합니다.

  • s-maxage를 통한 공유 캐싱 탐지
  • stale-while-revalidate / stale-if-error 전략 식별
  • API 응답이 캐싱 가능할 때 누락된 검증자 표시

리디렉션 간 CDN 동작 디버깅

많은 사이트가 리디렉션(HTTP→HTTPS, apex→www, 로케일 리디렉션)을 수행합니다. 이 도구는 첫 번째 홉부터 최종 응답까지 캐싱 정책이 일관되게 유지되도록 보장하는 데 도움을 줍니다.

  • 각 홉 및 최종 URL의 헤더 확인
  • 엣지 규칙 또는 오리진 재작성으로 인한 캐시 헤더 변경 포착

❓ Frequently Asked Questions

이 도구는 캐싱을 위해 어떤 헤더를 분석하나요?

캐시 의미론 및 신호에 초점을 맞춥니다: Cache-Control, Expires, Pragma, Age, ETag, Last-Modified, Vary, 그리고 Via, CF-Cache-Status, X-Cache 및 관련 엣지 헤더와 같은 일반적인 CDN/프록시 지표를 포함합니다.

브라우저와 CDN 간에 다른 캐싱 결과가 표시되는 이유는 무엇인가요?

브라우저는 종단 간 캐시 지시문(Cache-Control, Expires)을 따르는 반면, CDN 및 프록시는 공유 캐시 규칙(s-maxage, Surrogate-Control) 및 엣지 정책을 적용할 수 있습니다. 응답은 엣지에서는 캐싱 가능하지만 브라우저에서는 수명이 짧을 수 있으며, 그 반대의 경우도 있습니다.

ETag와 Last-Modified는 무엇에 사용되나요?

이는 조건부 요청을 위한 검증자입니다. ETag(If-None-Match) 또는 Last-Modified(If-Modified-Since)를 사용하면 클라이언트와 캐시가 리소스를 재검증하고 콘텐츠가 변경되지 않았을 때 가벼운 304 Not Modified 응답을 받을 수 있습니다.

HTML 페이지를 오랫동안 캐싱해야 하나요?

일반적으로 아닙니다. HTML은 자주 변경되며 개인화될 수 있습니다. 공격적인 캐싱은 오래되거나 잘못된 콘텐츠를 제공할 수 있습니다. 재검증과 함께 짧은 캐싱을 선호하고, 콘텐츠가 헤더/쿠키에 의존할 때는 올바른 Vary 규칙을 사용하세요.

Vary란 무엇이며 왜 중요한가요?

Vary는 캐시에 어떤 요청 헤더가 응답에 영향을 미치는지 알려줍니다(예: Accept-Encoding). Vary가 누락되거나 잘못되면 캐시가 잘못된 변형(압축 vs 비압축, 언어 변형 등)을 제공할 수 있습니다.

여기에 URL을 붙여넣어도 안전한가요?

이 도구는 제공된 URL에 대해 서버 측 요청을 수행하며 사설 네트워크 대상을 차단합니다. 신뢰할 수 있는 공개 URL을 사용하고 URL 쿼리 문자열에 비밀 정보를 붙여넣지 마세요.

분석 결과를 내보낼 수 있나요?

예. 이 도구는 JSON 보고서와 PDF 보고서를 내보내는 기능을 지원하므로 결과를 공유하거나 성능 감사에 첨부할 수 있습니다.

Pro Tips

Performance Tip

자산에 지문(파일명 해시)이 적용된 경우, 긴 max-age + immutable을 사용하여 재방문 성능을 최적화하세요.

Security Tip

HTML이 개인화(쿠키/인증)된 경우, 캐시 키와 Vary 동작을 완전히 제어하지 않는 한 공유 캐시에 저장하지 마세요.

Performance Tip

캐시 가능한 리소스에는 검증자(ETag 또는 Last-Modified)를 사용하여 클라이언트가 재다운로드 대신 304로 재검증할 수 있도록 하세요.

Best Practice

no-store와 긴 max-age 같은 충돌하는 지시문을 주의하세요. 이는 일반적으로 잘못된 구성의 징후입니다.

Best Practice

리디렉션 디버깅 시 각 단계의 캐시 헤더를 비교하세요. 엣지 규칙이 리디렉션과 최종 URL 간의 캐싱을 변경할 수 있습니다.

CI Tip

JSON 보고서를 내보내고 CI/성능 감사 아티팩트에 보관하여 시간 경과에 따른 성능 저하를 추적하세요.

Additional Resources

Other Tools

캐시 헤더 분석기 — Cache-Control, ETag, CDN 신호 및 브라우저 캐싱 검사 | Encode64