ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • HTTP 완벽 가이드 7장 캐쉬
    Web Dev/7. 네트워크 2021. 1. 30. 11:47
    728x90
    • 웹캐쉬란?
      • 자주 쓰이는 문서의 사본을 자동으로 보관하는 HTTP 장치
      • 웹 요청이 캐시에 도착했을때, 캐시된 로컬 사본이 존재하면 그문서는 원서버가 아니라 캐시로부터 제공된다
    • 캐쉬가 주는 혜택
      • 불필요한 데이터 전송을 줄여서, 네트워크 요금으로 인한 비용을 줄여준다
      • 네트워크 병목을 줄인다. 대역폭을 늘리지 않고도 페이지를 빨리 불러올 수 있다
      • 원서버에 대한 요청을 줄인다
      • 서버 부하를 줄이고, 더 빨리 응답을 줄수있다
      • 먼곳에서 불러올수록 시간이 많이 걸리는데, 캐시는 거리로 인한 지연을 줄여준다
    • 적중과 부적중
      • 캐시에 요청이 도착했을때, 그에대응하는 사본이 있으면 캐시 적중(chche hit)
      • 없으면 원서버로 요청 전달. 캐시 미스(cache miss)
    • 재검사(revalidation)
      • 원서버 컨텐츠가 변경되는것때문에, 캐시 사본이 최신인지 서버를 통해서 점검을 해야함. 
      • HTTP revalidation === 신선도 검사
      • 사용자가 요청이 왔을때 사본이 좀 오래 됬다 싶으면 원서버에 확인 요청을 하는데, 컨텐츠가 그대로면 304 not modified를 반환한다. 그러면 이제 클라이언트에 변한게 없으니까 원본을 보내준다(느린 적중)
        • 이경우는 캐쉬 부적중한거보단 빠르다. 왜냐하면 객체는 안가져오고 안변했다고만 메시지 보내는거라..!
      • GET If-Modified-Since 를 통해서 캐쉬 재검사를 한다. 
    • 캐쉬 서버의 적중률이 40프로정도면 좋은거라고 함
    • 캐시 토폴리지
      • 개인 전용 캐시
        • 웹 브라우저는 개인 전용 캐시를 내장하고 있다
        • 이걸로 개인용 컴퓨터의 디스크와 메모리에 자주쓰이는 문서를 캐시해준다
      • 공용 프락시 캐시
        • 공용 캐시는 캐시 프락시 서버 혹은 더 흔히 프락시 캐시라고 불리는틀별한 종류의 공유된 프락시 서버
      • 캐시 계층
        • 캐시를 계층으로 관리해서, 더 작은 캐쉬에서 처리하지 못한 요청을 상위 캐쉬에서 처리할 수 있도록 한다
    • 문서 만료
      • HTTP 는 Cache-Control 관 Expires라는 헤더를 통해서 원서버가 각 문서에 유효기간을붙이게 해준다
      • expires: 절대 유효기간을 준다.
      • Cache-Control: max-age: 초단위로 준다
    • 캐시 컨트롤
      • HTTP는 문서가 만료되기 전까지 얼마나 오랫동안 캐시될 수있게 할것인지 서버가 설정할수있는 여러가지 방법을 정의한다
      • Chche-Control: no-store, no-cache, must-revalidate, max-age
      • no-store: 캐시가 응답의 사본을 만드는 것을 금지
      • no-cache:응답은 로컬 캐시 저장소에 저장할수는 있지만, 서버와 반드시 재검사를 하고, 캐시에서 클라이언트로 제공해야하는것(Do not Serve from cache without revalidation)
      • max-age: 신선한 문서가 서버로 부터 온 후로 흐른 시간을 나타낸다. 
      • cache 컨드롤이란?
      • must-revalidate 응답헤더: 캐시가 이객체의 신선하지 않은 사본을 원 서버와의 최초의 재검사 없이는 제공해선 안된다는 의미

    댓글

Designed by Tistory.