게이트웨이는 웹에 더 복잡한 리소스를 받아오기 위해서 생겨났다!
리소스가 점점 복잡해지면서 리소스를 한 개의 애플리케이션으로만 처리하기 어려워졌다.
이를 해결하기 위해 개발자들은 인터프리터 같이 리소스를 받기 위한 경로를 안내하는 게이트웨이를 고안해냈다.
즉, 게이트웨이는
리소스
와어플리케이션
을 연결하며 서로 다른 프로토콜과 애플리케이션 간 통신을 가능하게 한다.
애플리케이션은 게이트웨이에게 요청을 처리해달라고 할 수 있고, 게이트웨이는 그에 응답할 수 있다.
게이트웨이는 요청을 받고 응답을 보내는 포털 같이 동작하는데, 동적인 콘텐츠를 생성하고나 데이터베이스에 질의를 보낼 수 있다.
예시1) 대학교 성적조회 사이트에서 성적을 열람할때:
클라이언트(ex) 성적조회사이트 client) -> 게이트웨이 인터페이스(ex) 성적조회사이트 server) -> 게이트웨이 -> 리소스 (ex) database)
ex2) 서로다른 프로토콜을 사용하는 경우:
html과 같은 웹페이지 등은 HTTP 프로토콜을 사용하고,
실시간, 스트리밍 동영상은 RTP 프로토콜을 사용한다.
게이트웨이는 HTTP 트래픽을 다른 트래픽으로 자동으로 변환해 HTTP 클라이언트가 다른 프로토콜을 몰라도 서버에 접속할 수 있게 하기도 한다.
게이트웨이가 클라이언트와 서버 측의 프로토콜을 구분할 때는 빗금을 사용한다.
<Client protocol>/<Server protocol>
Ex1) HTTP/FTP 서버 측 FTP
게이트웨이
게이트웨아가 FTP URL을 가리키는 HTTP 요청을 받는다. -> 게이트웨이는 FTP 커넥션을 맺고 FTP 서버에 적절한 명령을 전송한다. -> 클라이언트는 적절한 HTTP 헤더와 함꼐 HTTP를 통해 문서를 받는다.
Ex2) HTTPS/HTTP 클라이언트 측 보안
게이트웨이
게이트웨이는 암호화된 웹 요청을 SSL을 통해 받고, 요청을 해독해서 생성한 일반 HTTP 요청을 목적지 서버로 전달한다. (게이트웨이는 자동으로 사용자의 모든 세션을 암호화할 것이다)
EX3) HTTP/CGI 서버 측 애플리테이션
게이트웨이
게이트웨이는 애플리케이션 서버 게이트웨이 API를 통해서 HTTP 클라이언트를 서버 측 애플리케이션 프로그램에 연결한다. 웹에서 일기예보를 보거나 주식 시세를 볼 때, 사실은 애플리케이션 서버 게이트웨이를 방문하는 것이다.