반응형

프록시 캐시

원 서버(origin 서버)란,
한국에 있는 여러 클라이언트가 미국에 있는 서버에 접근을 한다고 가정하자.

그러면, 거기서 실제 애플리케이션에서 이미지를 제공하는 원소스가 있는 서버를 원 서버(origin 서버)라고 한다.

 

웹브라우저에서 미국서버까지 가려면 오래 걸릴 것이다.
대략 500ms(0.5초) 걸린다고 가정하자.

그러면 이미지 하나 다운로드 받는데,
사람들(클라이언트)이 전부다 500ms씩 기다려야 할 것이다.

프록시 캐시 서버를 하나 도입한다. (CDN 서비스)

미국에 있는 원서버입장에서는, 사용자에게 응답이 너무 느리다.

그래서 한국 어딘가에다가 프록시 캐시 서버를 넣어놓고,
웹브라우저(클라이언트)가 미국에 있는 원 서버에 직접 접근하는 것이 아니라,
한국에 있는 프록시 캐시 서버에 접근하도록 만드는 것이다.

웹브라우저가 들어오면, 미국에 있는 원서버로 접근하는게 아니라,
DNS등을 확인을 해봤더니 "한국에 있는 프록시 캐시 서버를 요청하도록 되어있네? " 라고하고서
IP를 한국에 있는 프록시 캐시 서버로 보낸다.

그렇게 되면, 프록시 캐시 서버는 당연히 응답 속도가 미국에 있는 원서버보다 빠를 것이다.

그러면, 기존에 0.5초 걸렸던 것이, 0.1초걸린다.

그렇게되면, 브라우저1, 브라우저2, 브라우저3이 모두 다 빠르게 응답을 받게된다.

public캐시는 중간에 공용으로 사용되는 프록시 캐시 서버에 저장되는 캐시이고
private캐시는 웹브라우저나 로컬에 저장되는 캐시이다.

 

이러한 것때문에 우리가 유튜브를 쾌적하게 볼 수 있는 것이다.

유튜브중에 사람들이 잘 보지 않는 외국 컨텐츠를 보게되면, 유튜브 다운로드가 굉장히 느리다.
그런데, 사람들이 많이 보는 컨텐츠를 보면, 로딩속도가 굉장히 빠르다.

이것이 프록시 캐시 서버로 인해 가능한 것이다.

 

그래서 현재는 대부분 글로벌 서비스들은  이러한 CDN서비스를 사용한다.

 

Cache-Control
캐시 지시어(directives) - 기타

  • Cache-Control: public
    • 응답이 public 캐시에 저장되어도 됨
  • Cache-Control:private
    • 응답이 해당 사용자만을 위한 것임, private 캐시에 저장해야 함(기본값)
  • Cache-Control:s-maxage
    • 프록시 캐시에만 적용되는 max-age
  • Age:60 (HTTP 헤더)
    • 오리진 서버에서 응답 후 프록시 캐시 내에 머문 시간(초)
반응형