Access-Control-Max-Age
응답 헤더 CORS

개요

Access-Control-Max-Age는 CORS 프리플라이트(OPTIONS) 요청의 결과(허용 메서드·헤더)를 브라우저가 얼마나 오래 캐시할지 초 단위로 지정하는 응답 헤더입니다. 캐시되는 동안에는 같은 조건의 요청에 대해 프리플라이트를 반복하지 않아 왕복 지연이 줄어듭니다.

자세히

복잡한(non-simple) 교차 출처 요청은 실제 요청 전에 OPTIONS 프리플라이트를 보내 서버가 그 메서드·헤더를 허용하는지 확인합니다. 매 요청마다 프리플라이트가 붙으면 왕복이 2배가 되므로, 서버가 Access-Control-Max-Age로 결과 캐시 수명을 주면 브라우저는 그 기간 동안 동일 URL·메서드·헤더 조합의 프리플라이트를 생략합니다.

캐시는 오리진·URL·요청 메서드·요청 헤더 조합을 키로 브라우저별 프리플라이트 캐시에 저장됩니다. 다만 브라우저는 상한을 둡니다. Chromium 계열은 최대 7200초(2시간), Firefox는 최대 86400초(24시간)로 잘라내며, 그보다 큰 값을 줘도 상한으로 제한됩니다.

값 -1은 캐시를 하지 않겠다는 의미로, 매 요청마다 프리플라이트를 강제합니다. 허용 정책을 자주 바꾸는 개발 중에는 짧은 값이나 0에 가까운 값이 편하고, 안정된 프로덕션에서는 상한에 가깝게 두어 프리플라이트 빈도를 낮추는 것이 좋습니다.

문법

Access-Control-Max-Age: <delta-seconds>

e.g. Access-Control-Max-Age: 600

지시어 / 값

<delta-seconds>프리플라이트 결과를 캐시할 초 단위 시간. -1은 캐시 금지를 의미.

실무 참고

관련 헤더

관련 상태코드

스펙 근거