Environment

CGI개념

skysoo1111 2016. 10. 31. 13:47

초창기 웹프로그래밍은 웹 서버와 웹 클라이언트 만이 존재했다.


이를 통해 웹 서버에서는 웹 클라이언트에서 요청한 정보를 제공해주기만 하면 되었기 때문에 지금의 웹 기술과 비교하면 상당히 간단했다.


이때 웹 서버에서 제공하는 데이터를 HTML(Hyper Text Markup Language)이라하는 문서형태로 보관하고 클라이언트로 보낼 때 HTTP(Hyper Text Transper Protocol)라 하는 통신 규약을 따르게 했다. 


브라우저에서 URL은 목적지로 사용되며 HTML은 정보 HTTP는 HTML을 전송하기 위한 통신 규약이다. 


따라서 URL, HTML, HTTP 이 3가지가 인터넷의 3요소라 할 수 있으며 이러한 개념은 영국의 팀 버너스리경이 고안한 것이다.


예전에는 아주 적은사람이 웹을 사용하고 그 정보 또한 단순한 구조였기에 3가지의 단순한 구조만으로 서비스를 제공하기에 문제가 없었다.


하지만 웹 사용자 수가 급속히 늘어나며 원하는 기능이 다양해짐에 따라 기존의 서비스 만으로는 한계가 있다는 것을 인지하고 많은 개발자들이 모여서 


CGI(Common Gateway Interface)라는 개념을 고안했다. 서버측에서 CGI를 통해 다양한 서버사이드 스크립트(php, Java, python, perl 등)를 웹 서버와 연결해주


며 클라이언트와 직접 연결되어 있지 않다. 웹 브라우저에서 요청한 페이지가 HTML이 아닌  php나 Java인 경우 웹 서버에서는 CGI를 통해 해당 엔진을 호출하여 사용자가 요청한 파일에 대한 정보를 처리한 후 CGI를 통해 다시 웹 서버로 돌려주고 이를 클라이언트에 제공한다.


서버사이드 스크립트의 언어가 내용을 처리할 때 데이터를 저장하는 DB(Mysql, Oracle ..)에서 원하는 정보를 가져다 사용한다.