Proxy

Hyeonsu Bang·2021년 12월 1일
0

Web

목록 보기
5/5
post-thumbnail

Proxy

클라이언트와 서버의 통신 사이에 놓여 있는 서버로, 클라이언트 대신 서버로부터 정보를 얻거나 처리하는 역할을 한다. 소프트웨어 디자인 관점으로 보면, 두 객체 간에 존재하는 인터페이스로써, 보이지 않는 곳에서(behind the scenes) 클라이언트의 요청을 처리하는 위임 객체(agent object)라고 할 수있다.

가장 큰 특장점은 아래와 같다.

  • 익명성 (anonymity)
    클라이언트의 요청을 프록시에서 받으면, 프록시가 직접 서버와 통신한다. 이를 통해 클라이언트의 public IP를 숨기고 프록시의 IP를 통해 통신할 수 있다.

  • 캐싱을 이용한 속도
    최초 리소스에 대한 요청이 있을 때, 프록시는 해당 요청의 결과를 서버로부터 받아 지정된 곳에 캐싱한다. 같은 요청이 왔을 때 다시 서버로 통신할 필요가 없이, 캐싱된 리소스를 통해 속도를 높일 수 있다. 또한 같은 요청에 대해 매번 서버에 접속할 필요도 줄어들게 되므로 bandwitdth도 줄일 수 있다.

  • 로깅
    요청 IP와 요청된 리소스, 방문 시간 등 다양한 로그를 저장하므로 다양하게 활용할 수 있다.


앞선 주제였던 Http 의 관점에서 보면 Http message을 통해 요청/응답을 할 때 클라이언트와 서버 사이에 존재해서 요청/응답에 가공, 캐싱, authentication 등의 추가 작업을 하는 모든 객체를 말한다고 할 수 있다.


reference:

profile
chop chop. mish mash. 재밌게 개발하고 있습니다.

0개의 댓글