
IT 쪽에서 근무하다보니 캐시는 기본 중의 기본으로 알고있는 상식이어야 해서 저 스스로도 다시 공부하는 마음으로 작성하게 됐습니다 !
여러분들이 웹페이지를 다시 방문했을 때 첫 접속보다 훨씬 빠르게 로딩되는 이유는 캐시(Cache) 덕분입니다.
캐시는 서버와의 불필요한 네트워크 통신을 줄여 성능을 크게 향상시키는데요 ! 그럼 캐시란 무엇인지 어떤 종류의 캐시가 있는지 알아보겠습니다.
1. 브라우저 캐시의 주요 분류
캐시란?
캐시(Cache)는 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 저장공간
- 메모리 캐시 (Memory Cache): RAM에 데이터를 임시 저장합니다. 속도가 매우 빠르지만 브라우저 탭을 닫으면 소멸합니다.
- 디스크 캐시 (Disk Cache): 저장장치(SSD/HDD)에 파일 형태로 보관합니다. 브라우저를 껐다 켜도 유지되며 고용량 이미지 등에 사용됩니다.
2. HTTP 헤더를 이용한 캐시 제어
서버는 응답 헤더에 캐시 규칙을 명시하여 브라우저가 정적 자원을 얼마나 보관할지 지정할 수 있습니다.
- Cache-Control: max-age=3600: 지정한 초(여기서는 1시간) 동안 서버에 재요청하지 않고 캐시된 파일 사용.
- Cache-Control: no-cache: 캐시를 저장하지만, 매번 서버에 “이 파일 변경되었나요?” 확인(검증) 후 사용.
- Cache-Control: no-store: 보안상 중요한 데이터에 사용하며, 캐시 자체를 전혀 저장하지 않음.
3. ETag와 Last-Modified를 이용한 조건부 요청
서버의 파일이 바뀌었는지 확인할 때 브라우저는 다음 헤더를 보냅니다.
- If-None-Match (ETag): 파일의 고유 해시값을 비교하여 파일 변경 여부 확인.
- 304 Not Modified: 서버 데이터가 변경되지 않았다면 200 OK 대신
304상태코드를 응답하여 기존 캐시를 재사용하도록 지시합니다. (대역폭 절감)