웹 캐시

클라이언트가 리소스를 요청하면 서버에서 응답을 할 때 header에 정보를 담아 클라이언트에 반환.

위 그림의 내용을 예로 설명

Cache-Control

Cache-Control HTTP 헤더를 통해 캐싱 정책을 정의

브라우저 별 cache-control 지원 여부 (android 4.1.2 이하 버전 테스트 포함 )

클라이언트 측 캐싱과 빠른 업데이트 동시에 가능 하게 하는 방법

참고자료 : https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/http-caching?hl=ko

1. 캐싱 방지하는 코드를 직접 작성해 넣는 방법

**<%@ page import="java.io.*, java.util.*" %>
 
<%--  CSS/JS 파일 캐싱 방지 --%>
<%
	String styleCss = application.getRealPath("/css/style.css");
	File style = new File(styleCss);
	Date lastModifiedStyle = new Date(style.lastModified()); 
 
	SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMddhhmmssSSS");
%>
/*적용 방법은  css나 js 파일명 뒤에 xxxx.css?ver=<%=fmt.format(lastModifiedStyle)%> 
이처럼 적으면 되고, 파일이 수정될 때마다 자동으로 수정된 시간 정보를 불러올 것이다. */** 

2. Webpack Caching 전략

웹팩으로 빌드한 결과물이 변경되지 않았으면 계속 캐싱 상태로 남겨서, 별도의 HTTP 요청이 발생하지 않도록 하는 기법에 대해서 정리

Output 파일 이름