본문 바로가기
CS/네트워크

[HTTP] HTTP Header 4 (프록시 캐시)

by 2245 2023. 5. 9.

출처

https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/dashboard

 

모든 개발자를 위한 HTTP 웹 기본 지식 강의 - 인프런

실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., [사진] 📣 확인해주세요!본 강의는 자바 스프링 완전 정복 시리즈의 세 번째 강의입니다. 우아한형제들 최연소 기술

www.inflearn.com


 

목차

     

    프록시 캐시

    원(Origin) 서버 직접 접근

     

    • 계속 미국에 있는 소스를 다운로드 받으면 생각보다 너무 오래 걸립니다.  프록시 캐시 도입

     

    프록시 캐시 

    • 요청이 미국에 있는 원 서버가 아니라 DNS를 확인하여 프록시 캐시 서버에 접근하여 데이터를 받습니다. 
    • 0.5 초 → 0.1 초로 시간 단축
    • 여담이지만, 그래서 유튜브에서 미국의 인기 있는 동영상들은 빠르지만 사람들이 잘 찾아보지 않는 영상들은 느립니다. (한국에 있는 서버에서 다운받기 때문)
    • 예) CDN 서비스 / AWS의 CloudFront

     

    Public 캐시 , Private 캐시

    • 중간에 공용으로 사용되는 캐시를 public 캐시라고 합니다.
    • 내 웹 브라우저에서 사용되는 캐시를 private 캐시라고 합니다.
    • public 캐시는 보통 처음 캐시에 접근할 땐 느리고 다음 사람이 접근할 땐 빠른 방식을 사용합니다.
    • 또는 원 서버에서 캐시 서버로 밀어넣기도 합니다.

     

    Cache-Control (프록시 관련)

    • Cache-Control: public
      : 응답이 public 캐시에 저장되어도 된다.
    • Cache-Control: private
      : 응답이 해당 사용자만을 위한 것이므로 private 캐시에 저장되어야 한다. (기본값)
      ex) 로그인한 정보가 public 캐시에 저장되면 안됩니다. 공용으로 사용하는 이미지는 public 캐시에 저장해도 됩니다.
    • Cache-Control: s-maxage
      : 프록시 캐시에만 적용되는 max-age
    • Age: 60
      : 오리진 서버에서 응답 후 프록시 캐시 내에 머문 시간을 알려줍니다. (단위: 초)

     

    캐시 무효화 방법

    웹 브라우저가 데이터를 임의로 캐시를 하는 경우가 많습니다. 아래의 헤더를 모두 넣어야 캐시를 하지 않습니다.

    • Cache-Control: no-cache (데이터는 캐시해도 되지만 항상 원 서버에 검증하고 사용해야 한다.)
    • Cache-Control: no-store  (민감한 정보가 포함되어 있으므로 캐시하면 안 된다. (메모리에서 사용하고 최대한 빨리 삭제)
    • Cache-Control: must-revalidate
      • 캐시 만료 후 최초 조회 시 원 서버에 검증해야 한다.
      • 원 서버 접근 실패 시 반드시 오류가 발생해야 한다. (504 - Gateway Timeout)
      • must-revalidate는 캐시 유효 시간이라면 캐시를 사용해야 한다.
    • Pragma: no-cache (HTTP 1.0 하위 호환용으로 넣는 헤더)

     

    no-cache vs must-revalidate

    no-cache의 기본 동작

     

     

     

    no-cache

     

    must-revalidate

     

     


     

     

    모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의

    실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., - 강의 소개 | 인프런

    www.inflearn.com