는 컴퓨터 네트워크에서 서로 다른 통신망, 프로토콜을 사용하는 네트워크 간의 통신을 가능하게 하는 컴퓨터나 소프트웨어를 두루 일컫는 용어, 즉 다른 네트워크로 들어가는 입구 역할을 하는 네트워크 포인트이다. 넓은 의미로는 종류가 다른 네트워크 간의 통로의 역할을 하는 장치이다. 또한 게이트웨이를 지날 때마다 트래픽(traffic)도 증가하기 때문에 속도가 느려질 수 있다. 쉽게 예를 들자면 해외여행을 들 수 있는데 해외로 나가기 위해서 꼭 통과해야하는 공항이 게이트웨이와 같은 개념이다.
즉, 게이트웨이는 서로 다른 네트워크 상의 통신 프로토콜(protocol,통신규약)을 적절히 변환해주는 역할을 한다.
게이트웨이는 주로 HTTP 트래픽을 다른 프로토콜로 변환하기 위해 사용한다. 마치 게이트웨이는 언제나 스스로가 리소스를 갖고 있는 진짜 서버인 것처럼 요청을 다룬다. 클라이언트는 자신이 게이트웨이와 통신하고 있음을 알아채지 못한다.
두 컴퓨터가 네트워크 상에서 서로 연결되려면 동일한 통신 프로토콜을 사용해야 하는데, 만약 요청은 HTTP 요청이고 백엔드에서 데이터를 가져오려면 FTP 통신이 필요하다면 중간에 게이트웨이가 두 프로토콜을 호환가능하도록 HTTP->FTP, FTP->HTTP를 대신 해주는 대행자가 되는 것이다.
기업 내부의 모든 웹 요청을 암호화해서 개인 정보 보호와 보안을 제공하는 게이트웨이를 사용할 수 있다. 클라이언트는 일반 HTTP를 사용해 웹을 탐색할 수 있지만 게이트웨이는 자동으로 사용자의 모든 세션을 암호화한다.
웹 서버의 앞에 위치하고 보이지 않는 인터셉트 게이트웨이나 리버스 프록시 역할을 한다. 이 게이트웨이트는 보안 HTTPS 트래픽을 받아서 복호화하고 웹 서버로 보낼 일반 HTTP 요청을 만든다.
이런 게이트웨이는 원 서버의 부하를 줄여주기도 한다. 하지만 이는 게이트웨이와 원 서버 간의 암호화하지 않은 트래픽을 전송하기 때문에 게이트웨이와 원 서버 간에 있는 네트워크가 안전한지 확인을 확실히 하고 사용해야 한다.
애플리케이션 서버는 게이트웨이와 목적지 서버를 한 개의 서버로 결합하고 클라이언트와 HTTP로 통신한다.
웹 터널은 HTTP 프로토콜을 지원하지 않는 애플리케이션에 HTTP 애플리케이션을 사용해 접근하는 방법을 제공한다.
웹 터널을 사용하면 HTTP 커넥션을 통해 HTTP가 아닌 트래픽을 전송할 수 있고, 다른 프로토콜을 HTTP 위에 올릴 수 있다.
웹 터널을 사용하는 가장 일반적인 이유는 HTTP 커넥션 안에 HTTP가 아닌 트래픽을 얹기 위해서다.즉, 웹 터널을 사용하면 웹 트래픽만을 허락하는 방화벽이 있더라도 HTTP가 아닌 트래픽을 전송할 수 있다.
사용하기 위해선 HTTP의 CONNECT 메소드를 사용하여 커넥션을 맺는다.
참고* HTTP CONNECT 요청 메소드는 하나 이상의 프록시 서버를 통해 클라이언트와 원본(origin)서버의 리소스 간의 양방향 통신을 설정하는데 사용된다.
하지만 안전하지 않으며 무력화되거나 캐싱할 수 없다.
HTTP 릴레이는 HTTP 명세를 완전히 준수하지 않는 간단한 HTTP 트록시다. 릴레이는 커넥션을 맺기 위한 HTTP통신을 한 다음, 바이트를 맹목적으로 전달한다.