요즈음 웹쪽을 공부하고 있는데 문득 cgi가 궁금 해졌다.
중학교 시절 홈페이지를 만들어 보고 그위에 Painting 기능을 넣어주고 싶어서
cgi를 지원해주는 웹 호스팅 무료 계정을 찾아 다니고,
가까스로 cgi 파일을 ftp로 서버에 올려서 사용하던게 생각난다.
그당시 느낀바로는 cgi를 설치? 혹은 깔다? 의 개념으로 맘대로 생각햇었는데...
지금은 프로그래밍 전공자이고 하니, 한번 나름 정리해서 적어 놓아 보고자 글을 쓴다.
자~ 그럼...CGI란? 무엇인가? 를 묻기 전에 먼저 웹 에대해서 간략이 적어보고자 한다.
--------------------------------------------------------------------------------
웹 서버는 동적인 컨텐츠 생성을 할 수 없다.
(웹 페이지 구조를 유기적으로 바꿀 수 없다는 의미 이다.)
이 말은 즉 Client( User )가 요청한 페이지는 웹서버가 이미 따로 존재하고 있던
(이미 만들어진 다른 웹페이지)
웹 페이지를 리턴하는 것을 뜻한다.
이것은 또한 Client의 요청과 동시에 동적으로 존재하지 않았던 페이지를 만들어
제공 할 수 없다는 것을 의미한다.
또한 웹 서버에서는 데이터를 저장 할 수 없다.
-------------------------------------------------------------------------------
자 어떠한가?
참으로 웹 서버라는 녀석은 바보 스럽고 할 줄 아는 거라고는 요청된 페이지 보여주기 밖에
할 수 없는 무능력한 놈으로 보이지 않는가?
따라서 위의 일들을 수행하기 위해 다른 application 에게 도움을 요청해야 하는데....
이런일은 하는 것이 CGI ( Common Gateway Interface) 이다.
CGI는 펄 스크립트, 파이썬 등으로 제작된다고 한다.( 정말인지는 모르겠음.....)
웹상에서 동적인 수정을 필요로 할때, 웹언어가 필요 하고,
User가 서버에 웹페이지 요청시,
그것이 응용프로그램에 의해 처리될 필요가 있을때,
서바가 응용프로그램을 실행시키고 필요한 메세지를 받는다.
이때 서버와 응용프로그램 사이에 데이터를 주고 받기 위한 표준화된 방법이 CGI라고
어딘가에 적혀 있다...;.;;
1 .웹 서버는 GET or POST 방식으로 넘어온 파라미터들을
2. CGI에게 넘겨주고
3. CGI는 이런 정보를 가지고 웹 페이지를 만들어
4. 다시 웹 서버에 넘겨주고
5. 또다시 웹서버는 클라이언트들에게 넘겨준다.
서버단에서 애플릿을 통해 페이지를 구축 하므로써
Client에서는 동적으로 웹 페이지를 받는 효과를 얻게되는 것이다.
우리가 흔히 알고 있는?(혹은 들어본?)
JSP/ASP/PHP 같은 웹 언어들을 CGI라고 부를 수 있겠다.
CGI와 같은 목적? 혹은 같은 역할을 하기때문에 CGI는 그들의 아버지 뻘 정도라고 생각할 수 있지 않을까?
반응형
'Miscellaneous' 카테고리의 다른 글
스마트TV 차단? 더 이상 애국심 이용마라. (0) | 2012.06.15 |
---|---|
서버란? (0) | 2012.05.21 |
Runtime에 대한 개인적인 생각... (0) | 2012.01.17 |
JSON을 이용해 보자! (0) | 2012.01.12 |
FlatForm 三 國 時 代..... (0) | 2012.01.10 |