ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • HTTP 캐싱
    HTTP 2020. 9. 23. 21:06

    http 캐싱

    캐싱이란?

    캐싱이란 주어진 리소스의 복사본을 저장하고 요청 시에 그것을 제공하는 기술이다.

    • 웹 캐시가 자신의 저장소 안에 요청된 리소스가 있다면, 요청을 가로채 리소스의 복사본을 반환한다.

    장점

    • 모든 클라이언트를 서비스할 필요가 없어진 서버의 부하를 완화시킨다.
    • 클라이언트에 더 가까워져 성능이 향상된다.
    • 리소스를 회신하는 데 비용이 더 적게 든다.
    하나의 웹사이트에 대해, 캐싱은 높은 성능 달성에 중요한 컴포넌트이다. 리소스는 변하므로 캐시 자원을 변하기 전까지는 유지 하는 것이 중요하다.

    캐시의 종류

    캐시

    사설 브라우저 캐시

    • 사설 캐시는 단일 사용자에게 초점이 맞춰져 있다. 브라우저 캐시는 사용자에 의하여 HTTP를 통해 다운로드된 모든 문서들을 가지고 있다. 이 캐시는 서버에 의한 추가적인 요청없이 뒤로가기나 앞으로 가기, 저장, 소스로 보기 등을 위해 이용 가능한 방문했던 문서들을 저장한다. 캐시된 컨텐츠의 오프라인 브라우징을 개선시킨다.

    공유 프록시 캐시

    • 공유 캐시는 한 명이상의 사용자에 의한 재사용을 위해 응답을 저장하는 캐시이다.

    캐싱 동작의 대상

    일반적인 HTTP 캐시들은 GET에 대한 응답을 캐싱하는 것으로 제한되며 다른 메서드들은 제외된다. 기본 캐시 키는 요청 메서드 그리고 대상 URI로 구성된다.

    캐싱 엔트리 폼

    • 검색요청의 성공적인 결과: HTML 문서, 이미지 혹은 파일과 같은 리소스를 포함하는 GET 요청에 대한 200 (OK) 응답
    • 영구적인 리다이렉트: 301(Moved Permanently) 응답.
    • 오류 응답: a 404 (Not Found) 결과 페이지
    • 완전하지 않은 결과: 206(Partial Content) 응답
    • 캐시 키로 사용하기에 적절한 무언가가 정의된 경우에 GET 이외의 응답.

    캐싱 제어

    Cache-control 헤더

    cache-Control HTTP/1.1 기본 헤더 필드는 요청과 응답 양측 모두에 있어 캐싱 메커니즘을 위한 디렉티브를 지정하는데 사용된다.

    캐시하지않음

    Cache-Control: no-store
    Cache-Control: no-cache, no-store, must-revalidate

    캐시하지만 재검증

    Cache-Control: no-cache

    사설 캐시와 공개 캐시

    "공개"디렉티브는 응답이 어떤 캐시에 의해서든 캐시되는 것을 가리킨다. HTTP 인증 혹은 보통 캐시 가능하지 않은 응답 상태 코드를 지닌 페이지가 이제 캐시되어야 할 경우 유용할 수 있다.

    "사설"디렉티브는 단일 사용자에 의한 것이며 공유 캐시에 의해 저장되어서는 안되는 것 을 가리킨다.

    Cache-Control: private
    Cache-Control: public

    'HTTP' 카테고리의 다른 글

    HTTP 쿠키에 대하여  (0) 2020.09.24
    HTTP 기반 시스템의 구성요소  (0) 2020.09.16
    HTTP 개요  (0) 2020.09.15

    댓글