클라이언트와 서버 사이에서 대리 통신하는 중계하는 개념을 프록시(Proxy)라고 하고 이렇게 중계 기능을 하는 것을 프록시 서버라고 한다.
[클라이언트]와 [서버]에 각각 반대의 역할을 한다. [클라이언트]에게는 서버의 역할, [서버]에게는 [클라이언트]의 역할을 수행한다.
프록시 서버에 요청된 내용들을 [캐시]를 이용해 저장한다. 이로 인해 전송시간을 절약하는 이점이 생긴다.
만약, 위 그림처럼 클라이언트와 서버의 물리적인 거리가 아주 멀다면 클라이언트에서 서버에 접근하는데 오랜 시간이 걸린다.
따라서 클라이언트와 서버사이에 프록시 캐시 서버를 둔다. CDN서비스라고 하여 대표적인 것이 AWS Cloud Front이다.
클라이언트로부터 요청이 오면 원서버가 아니라 프록시 캐시 서버를 거친다. 원 서버 보다 가까이에 있으므로 응답시간이 보다 빨라진다.
프록시 캐시 서버에 데이터를 넣는 방법은 크게 두가지가 있다.
첫 번째는 사람들이 다운받은 데이터를 저장하는 방법이다.
이 경우 첫 번째로 데이터를 다운받는 사람은 원 서버에서부터 데이터를 다운받아야 하므로 느리지만 그 이후 사용자는 프록시 캐시에 저장된 데이터를 이용할 수 있어 빠르게 사용할 수 있다.
두 번째로는 원 서버에서 프록시 캐시 서버에 직접 데이터를 밀어 넣는 방법이 있다.
참고 ❗
CDN(콘텐츠 전송 네트워크) 은 지리적으로 분산된 여러개의 서버로 웹 콘텐츠를 사용자와 가까운 곳에서 전송함으로써 전송속도를 높이는 기술이다.
프록시 캐시 서버처럼 공용으로 사용하는 것은 public
캐시, 로컬에서 사용하는 웹 브라우저 캐시는 private
캐시라고 한다.
☑️ Cache-Control
: public
☑️ Cache-Control
: private
☑️ Cache-Control
: s-maxage
max-age
값☑️ Age
: 숫자
[Reference]
김영한 - HTTP 웹 기본지식 강의
프록시란 무엇인가?
위키피디아 - 프록시 서버
개발왕 도던 - 프록시 캐시