개발자 블로그

Http와 연계하는 웹서버 본문

CS/Network

Http와 연계하는 웹서버

hayongwoon 2022. 6. 13. 11:12

통신을 중계하는 프로그램 : 프록시, 게이트웨이, 터널

HTTP는 클라이언트와 서버 이외에 프록시, 게이트웨이, 터널과 같은 통신을 중계하는 프로그램과 서버와 연계하는 것도 가능하다. 두 서버 사이의 중계 역할을 하고 클라이언트에 리스폰스를 반화하는 역할을 한다. 

여기서 의문점이 생긴다. 아니 의사소통도 대변인이 있으면 잘 되지 않고 시간이 오래 걸리는데, 이러한 중계 프로그램을 두는 이유는 무엇일가? 아마 다른 이점이 있을 것이다. 여기서는 이러한 중계 프로그램이 하는 일과 장점을 아주 간단하게 알아보고 정리하는 정도로만 해보자!

 

1) 프록시는 서버의 대변인?

 이전에 프로젝트를 하면서 Nginx에 대해 공부를 한 경험이 있다. 그 때 처음 들어본 단어인데, 종류로는 포워드 프록시와 리버스 프록시가 있다. 해당 프록시의 서버 간의 위치에 따라 종류가 달라지는데, 간단하게 구분을 하자면 포워드 프록시는 클라이언트의 익명을 보장하고 리버스 프록시는 서버 쪽의 익명을 보장하는 차이가 있다. 그러므로 개발자의 의도에 따라 보안의 이점을 가져갈 수도 있다. 그리고 보안뿐 아니라 프록시 프로그램을 통해 캐싱과 트래픽의 분산 등의 이점을 가져갈 수 있다. 

 

보안과 트래픽 분산 오케이 그렇다면 캐싱은 무슨 말일까? 

 

2) 리소스를 보관하는 캐시

 캐시는 프록시 서버와 클라이언트의 로컬 디스크에 저장한 리소스 사본을 가르키는 말이다. 사용자가 급격히 늘어나면서 서버에 요청하는 리퀘스트 또한 무수히 늘어난다. 보통 클라이언트에 비해 매우 소수의 서버들이 엄청나게 많은 요청을 일일히 다 처리하기엔 부하가 너무 크다. 그래서 캐시를 통해 처음 보낸 리소스가 아니라면 처음에 서버로 부터 받아둔 리소스를 캐싱을 통해 캐시 서버가 갖고 있는 것이다. 그렇다면 같은 정보에 대해서는 WAS에 부담을 줄여줄 수 있는 이점이 있다.  

 

 캐시 서버에는 유효기간이 있다. 같은 정보라도 오리진 서버의 업데이트로 인해 정보가 변했을 수도 있기 때문에 오래된 리소스에 대한 처리를 유효성을 통해 관리할 수 있다. 

 

 클라이언트 측에도 캐시가 있다. 캐시 서버만 캐시를 갖고 있지 않다. 크롬과 같은 브라우저에도 캐시를 보관할 수 있다. 클라이언트가 보존하고 있는 캐시는 인터넷 임시파일 이라고 부르며 같은 정보를 갖고 있는 경우, 서버에 접속하지 않고도 로컬 디스크로 부터 불러올 수 있다!

 

3) 게이트 웨이 -  클라이언트와 게이트 웨이 사이를 암호화하는 등으로 안전하게 접속함으로써 통신의 안정성을 높여주는 역할을 한다.  

 게이트 웨이 동작은 프록시 서버와 매우 유사하다. 프록시 서버의 경우 클라이언트와 오리진 서버 사이의 대변인 역할을 했다면, 게이트 웨이는 클라이언트와 HTTP 이외의 서버들 간 안전 요원의 역할을 한다.

 예를 들어 게이트 웨이는 데이터베이스에 접속해 SQL쿼리를 사용해서 데이터를 얻는 곳에서 이용할 수 있다. 쇼핑사이트나 결제 시스템이 이루어지는 민감한 서버와 연결할 때 사용되기도 한다!

 

4) 터널

터널은 요구에 따라 다른 서버와의 통신 경로를 확립한다. SSL과 같은 암호화 통신을 통해 서버와 안전하게 통신을 하기 위해 사용한다! 경로 자체만을 제공하기 때문에 HTTP리퀘스트를 해석하지 않는다. 그러므로 클라이언트에선 이 터널 자체는 의식할 필요가 없다!

 

 

 

** 서버 간 중계하는 프로그램은 서버들의 대변인으로서 클라이언트와 주고받는 요청-리소스를 안전하고 보다 효율적인 방법으로 관리해주는 역할을 한다. 레이어가 하나 더 추가되는 것은 깊이 고려해볼 문제이며 때문에 이러한 기능의 역할을 간략히 알아보았다. 

 

'CS > Network' 카테고리의 다른 글

GET method의 특징  (0) 2022.08.09
세션과 토큰  (0) 2022.06.20
TCP/IP  (0) 2022.06.08