캐시는 이전에 요청된 리소스를 저장하여, 같은 요청이 발생했을 때 서버에서 리소스를 다시 받아오지 않고, 저장된 캐시를 이용하여 빠르게 로딩할 수 있도록 도와주는 기능입니다.
웹 브라우저는 웹 페이지를 로드할 때 해당 페이지에 필요한 리소스를 다운로드합니다.
이 때, 브라우저는 다운로드한 리소스를 캐시에 저장하고, 이후에 같은 리소스가 필요할 때 서버에서 다시 다운로드하지 않고, 캐시에서 불러옵니다.
다음과 같이 HTTP 응답 헤더를 사용하여 캐시를 제어할 수 있습니다.
HTTP/1.1 200 OK
Date: Mon, 19 Apr 2023 06:47:56 GMT
Content-Type: image/png
Content-Length: 1024
Cache-Control: max-age=3600, public
Expires: Mon, 19 Apr 2023 07:47:56 GMT
ETag: "abc123def456"
Last-Modified: Sat, 16 Apr 2023 12:00:00 GMT
하나씩 살펴보겠습니다
Cache-Control
Cache-Control 헤더는 캐시 제어를 위한 다양한 지시어를 제공합니다. 예를 들어, "max-age" 지시어를 사용하여 캐시 유효 기간을 설정할 수 있습니다. "no-cache" 지시어를 사용하여 캐시를 사용하지 않도록 지정할 수도 있습니다.
Expires
Expires 헤더는 캐시의 만료 날짜를 지정합니다. Cache-Control 헤더와 함께 사용됩니다.
ETag
캐시된 리소스의 버전을 식별하는 문자열을 포함합니다. 이 헤더는 캐시 유효성을 검사할 때 사용됩니다.
Last-Modified
Last-Modified 헤더는 서버에서 리소스를 마지막으로 수정한 시간을 포함합니다. 이는 캐시 유효성을 검사할 때 사용됩니다.
캐시는 빠른 로딩 속도와 대역폭 절약을 제공하지만 캐시에 저장된 리소스가 최신 버전이 아닐 수도 있으며, 사용자가 요청한 리소스와 다른 결과를 보여줄 수도 있습니다. 따라서, 캐시는 적절히 설정되어야 하며 웹 개발자는 리소스를 캐싱할지 말지, 캐시 유지 기간을 어느 정도로 설정할지 등을 결정해야 합니다.
'정보처리기사' 카테고리의 다른 글
[정보처리기사] 관계 대수와 관계 해석이 무엇이며 어떤 차이가 있을까? (0) | 2023.04.20 |
---|---|
[정보처리기사] 웹 세션(Session)이란? (0) | 2023.04.20 |
[정보처리기사] HTTP 쿠키(Cookie)란? (0) | 2023.04.19 |
[정보처리기사] HTTP 통신 (HyperText Transfer Protocol)이란? (0) | 2023.04.19 |
[정보처리기사] OSI 7계층 (Open Systems Interconnection) (0) | 2023.04.19 |