CS 공부/네트워크

리소스 게이트웨이 - CGI

r잡초처럼 2023. 7. 10. 23:42
  • 게이트웨이의 가장 일반적인 형태인 애플리케이션 서버는 목적지 서버와 게이트웨이를 한 개의 서버로 결합한다.
  • 애플리케이션 서버는 HTTP를 통해서 클라이언트와 통신하고 서버 측에 있는 애플리케이션 프로그램에 연결하는 서버 측 게이트웨이다.
  • 애플리케이션 서버는 게이트웨이의 애플리케이션 프로그래밍 인터페이스를 통해서 요청을 서버에서 동작하고 있는 애플리케이션에 전달한다.
  • 애플리케이션 게이트웨이에서 유명했던 최초의 API는 공용 게이트웨이 인터페이스(CGI)였다. CGI는 특정 URL에 대한 HTTP 요청에 따라 프로그램을 실행하고, 프로그램의 출력을 수집하고, HTTP 응답으로 회신하는데 웹 서버가 사용하는 표준화된 인터페이스 집합이다.

공용 게이트웨이 인터페이스

  • CGI 애플리케이션이 서버와 분리되면서 펄, Tcl, C, 다양한 셸 언어를 포함하여 수많은 언어로 구현할 수 있게 되었다. 
  • CGI가 내부에서 어떤 처리를 하는지는 사용자에게 보이지 않는다.
  • 사용자의 시각에서는 CGI가 내부적으로 일반적인 요청을 만드는 것일 뿐이다.
  • CGI의 단점은 성능 관련한 비용이 발생한다. 
  • 모든 CGI 요청마다 새로운 프로세스를 만드는 데 따르는 부하가 꽤 크고, CGI를 사용하는 서버의 성능을 제한하며 서버 장비에 부담을 준다.
  • 이 문제를 피하고자 새로운 CGI 형식인, Fast CGI가 개발되었다. 이 인터페이스는 CGI와 유사하지만, 데몬으로 동작함으로써 요청마다 새로운 프로세스를 만들고 제거하면서 생기는 성능 저하 문제를 해결하였다.