관리 메뉴

새로운 시작, GuyV's lIfe sTyle.

Q. HTTP 에서 Expires 헤더 값 -1과 0의 차이는? 본문

ⓟrogramming/FAQ

Q. HTTP 에서 Expires 헤더 값 -1과 0의 차이는?

가이브 2023. 11. 20. 23:36


HTTP에서 "Expires" 헤더의 값은 리소스(예: 웹 페이지, 이미지, 스크립트 파일 등)가 브라우저 캐시에서 얼마나 오래 저장되어야 하는지를 정의합니다. "Expires" 헤더는 특정 일자 및 시간을 나타내며, 이를 통해 브라우저는 리소스를 해당 일자 및 시간 이후로 캐시하지 않아야 함을 이해합니다.

Expires: -1: 이 값은 음수이며, 브라우저에게 "이 리소스는 이미 만료되었으므로 캐시에서 사용하지 마십시오"라고 알려줍니다. 이것은 리소스를 즉시 재검색하고, 다시 서버에서 다운로드해야 함을 의미합니다.

Expires: 0: 이 값은 현재 일시 및 시간(즉, 만료되었거나 이미 만료됨)을 나타냅니다. 브라우저는 이것을 "캐시에서 직접 요청하지 마세요"로 해석할 수 있으며, 이것 역시 리소스를 즉시 재검색하고 서버에서 다시 가져와야 함을 의미합니다.

둘 다 리소스를 브라우저 캐시에 저장하지 않거나 현재 저장된 캐시를 사용하지 말라고 명령하는 방식으로 작동하지만 -1은 이미 만료되었음을 명확하게 나타내고, 0은 현재 시간과 일치함을 나타내는 차이가 있습니다. 일반적으로 브라우저는 이러한 지시에 따라 동작하며, 웹 서버에서 올바른 "Expires" 헤더 값을 설정함으로써 캐싱 동작을 제어할 수 있습니다.

-

HTTP 응답에서 "Expires" 헤더를 설정하는 예제를 제공하겠습니다. 이 예제는 Apache 웹 서버의 .htaccess 파일을 사용하는 방식을 보여줍니다. .htaccess 파일을 사용하면 웹 서버가 전송하는 HTTP 응답 헤더를 구성할 수 있습니다.

아래는 .htaccess 파일에서 "Expires" 헤더를 설정하는 예제입니다. 이 예제는 이미지 파일을 1년 동안 브라우저 캐시에 저장하도록 지정합니다:

<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType image/jpeg "access plus 1 year"
    ExpiresByType image/png "access plus 1 year"
    ExpiresByType image/gif "access plus 1 year"
</IfModule>



이 예제에서:

<IfModule mod_expires.c>: 이 부분은 mod_expires 모듈이 활성화되어 있는 경우에만 Expires 지시문을 사용하도록 하는 부분입니다.
ExpiresActive On: Expires 지시문을 활성화합니다.
ExpiresByType 지시문은 특정 MIME 타입(여기서는 이미지 파일)에 대한 "Expires" 헤더를 설정합니다.
"access plus 1 year"는 리소스를 1년 동안 캐시에 저장하도록 지정하는 부분입니다.
이렇게 설정된 .htaccess 파일을 웹 서버에 배포하면 해당 서버에서 이미지 파일에 대한 "Expires" 헤더가 설정되어 브라우저가 이미지를 캐시할 수 있게 됩니다. 이렇게 하면 이미지 파일이 브라우저 캐시에 오랫동안 저장되므로 다운로드 시간을 줄일 수 있습니다.

참고로, 위의 예제는 Apache 웹 서버를 기준으로 한 것이며, 다른 웹 서버에서는 유사한 방식으로 "Expires" 헤더를 설정할 수 있습니다.

반응형
Comments