본문 바로가기

네트워크 공부

[ 네트워크 ] 게이트웨이, 터널, 프록시

이번 포스팅은 그림으로 배우는 HTTP 책을 읽고 필요한 부분을 요약해 적은 포스팅입니다.

 

 이번 포스팅에서는 HTTP 클라이언트와 서버 이외에 프록시, 게이트웨이, 터널과 같은 통신을 중계하는 프로그램에 대해 포스팅 해보겠습니다. 이런 프로그램들은 그 다음에 있는 다른 서버에 리퀘스트를 중계하고 그 서버로부터 받은 리스폰스를 클라이언트에 반환하는 역할을 담당합니다.

 

프록시

서버와 클라이언트의 양쪽 역할을 하는 중계 프로그램으로, 클라이언트로부터의 리퀘스트를 서버에 전송하고, 서버로부터의 리스폰스를 클라이언트에 전송합니다.

 

프록시 서버는 클라이언트로부터 받은 리퀘스트를 다른 서버에 전송합니다. 클라이언트로부터 받은 리퀘스트 URI를 변경하지 않고 그 다음의 리소스를 가지고 있는 서버에 보냅니다.

 

HTTP 통신을 할 때, 프록시 서버를 여러 대 경유하는 것도 가능합니다. 체인과 같이 여러 대 경유해서 리퀘스트랑 리스폰스를 중계해 갑니다. 중계할 때에는 Via 헤더 필드에 경유한 호스트 정보를 추가해야 합니다.

 

프록시 서버의 사용 방법은 여러 가지가 있는데, 2개의 기준으로 분류합니다.

  • 캐시하는지 안하는지 여부
  • 메시지를 변경하는지 안하는지

> 캐싱 프록시 (Cashing Proxy)

프록시 서버 상에 리소스 캐시를 보존해 두는 타입의 프록시입니다. 프록시에 다시 같은 리소스에 리퀘스트가 온 경우, 오리진 서버로부터 리소스를 획득하는 것이 아니라 캐시를 리스폰스로서 되돌려 주는 것이 있습니다.

 

> 투명 프록시 (Transparent Proxy)

프록시로 리퀘스트와 리스폰스를 중계를 할 때 메시지 변경을 하지 않는 타입의 프록시를 투명 프록시라고 합니다. 반대로 메시지에 변경을 가하는 타입의 프록시를 비투과 프록시라고 합니다.

 

게이트웨이

다른 서버를 중계하는 서버로, 클라이언트로부터 수신한 리퀘스트를 리소스를 보유한 서버인 것처럼 수신합니다. 경우에 따라서는 클라이언트는 상대가 게이트웨이라는 것을 알지 못할 수도 있습니다.

게이트웨이의 동작은 프록시와 매우 유사합니다. 게이트웨이의 경우에는 그 다음에 있는 서버가 HTTP 서버 이외의 서비르르 제공하는 서버가 됩니다. 클라이언트와 게이트웨이 사이를 암호화하는 등으로 안전하게 접속함으로써 통신의 안전성을 높이는 역하을 합니다. DB에 접속해 SQL 쿼리를 사용하는 곳이나 쇼핑 사이트 등에서 신용 카드 결제 시스템 등과 연계할 때 사용되기도 합니다.

 

게이트웨이와 라우터의 차이

라우터는 주로 WAN과 LAN을 연결(layer3)하는데 사용되며, 게이트웨이는 프로토콜이 다른 네트워크를 연결(layer4)할 때 주로 사용됩니다. 요즘에는 라우터와 게이트웨이 기능이 같이 있는 장비를 사용하는 추세입니다.

 

터널

서로 떨어진 두 대의 클라이언트와 서버 사이를 중계하며 접속을 주선하는 중계 프로그램입니다.

 

터널은 요구에 따라서 다른 서버와의 통신 경로를 확립합니다. 클라이언트는 SSL 같은 암호화 통신을 통해 서버와 안전하게 통신을 하기 위해 사용합니다. 터널 자체는 HTTP 리퀘스트를 해석하려고 하지 않고 그대로 다음 서버에 리퀘스트를 중계합니다. 그리고 통신하고 있는 양쪽 끝의 접속이 끊어질 때 터널도 종료합니다.

 

 

 


소스 참조

[ 네트워크 용어 ] 게이트웨이 : https://information.koreainfoguide.com/entry/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EC%9A%A9%EC%96%B4-%EA%B2%8C%EC%9D%B4%ED%8A%B8%EC%9B%A8%EC%9D%B4-Gateway-%EA%B2%8C%EC%9D%B4%ED%8A%B8%EC%9B%A8%EC%9D%B4%EC%99%80-%EB%9D%BC%EC%9A%B0%ED%84%B0-%EC%B0%A8%EC%9D%B4%EC%A0%90