일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 퍼스
- 전라도여행
- 광야에서
- 서호주
- live8
- 게시판페이징
- 유용주
- 닷넷공부법
- 서호주여행
- BSB
- 여행
- wp7
- 닷넷게시판만들기
- ASP.NET
- 안치환
- swell season
- 영화
- 김광석
- U2
- asp
- 닷넷게시판리스트
- 가족영화
- The Frames
- 윈폰7
- 백스트리트보이스
- 안치환공연
- Perth
- 안치환콘서트
- 닷넷DB연동
- 웹프로그래밍
- Today
- Total
새로운 시작, GuyV's lIfe sTyle.
Q. HTTP 에서 Expires 헤더 값 -1과 0의 차이는? 본문
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" 헤더를 설정할 수 있습니다.
'ⓟrogramming > FAQ' 카테고리의 다른 글
Q. 파이썬 공부 과정 (0) | 2023.11.24 |
---|---|
Q. BIOS와 UFEI 다른 점? (0) | 2023.11.24 |
Q. 원격지와 TCP 로 네트워크 통신할 때 로컬 포트는 어떻게 정해지는가? (0) | 2023.11.20 |