26. 작동 원리


  앞장에서 보았듯이, 기본적으로 CGI의 개념은 UNIX나 Window에서 거의 비슷하다.

  앞의 강좌들을 다 보지 못한 사람은 CGI with C 기초부터 차근 차근 읽어오기 바란다. 이미 다 읽어본 사람을 위해서 다음과 같이 간단히 요약해 보면,
  • 기본적인 작동방식은 UNIX와 Window가 동일하다.

  • CGI프로그램을 실행시키려면 반드시 CGI용 디렉토리에 위치시켜야 한다.

  • CGI프로그램에서 기본 출력(stdout)으로 출력하게 되면 바로 브라우저화면으로 전달된다.

  • GET방식은 Argument형태대로 들어온다.

  • CGI에서 기본 입력(stdin)을 통해서 사용자의 입력(POST방식)을 읽어 들일 수 있다.

  • getenv("")를 통해서 환경변수(Environment Variables)에 접근할 수 있다.

  자 그럼, 이제 GET방식이 어떻게 작동되는지 알고 있으니까, 한번 테스트나 해보자.

26.1 GET METHOD

  기초 강좌중 7.1 GET Method( 보기 ) 예를 그대로 사용해 보자. 먼저, 폼 전송을 위한 HTML 파일을 다음과 같이 준비한다.($ROOT/htdocs/get.html 파일이다.)

<HTML><BODY>
<FORM METHOD=GET ACTION="/cgi-bin/get.exe">
userid : <INPUT TYPE=text NAME=userid><BR>
passwd : <INPUT TYPE=password NAME=passwd><BR>
animal : <SELECT NAME=animal>
           <OPTION>lion
           <OPTION>tiger
           <OPTION>monkey
         </SELECT><BR>
area   : <INPUT TYPE=radio NAME=area VALUE=seoul> Seoul
         <INPUT TYPE=radio NAME=area VALUE=pusan> Pusan<BR>
config : <INPUT TYPE=checkbox NAME=conf1 VALUE=111> 111
         <INPUT TYPE=checkbox NAME=conf2 VALUE=222> 222<BR>
comment: <TEXTAREA NAME=comment></TEXTAREA><BR>
<INPUT TYPE=submit>
</FORM>
</BODY></HTML>


  자, GET방식은 getenv("QUERY_STRING")으로 참조할 수 있다고 했으므로, 다음과 같은 C프로그램을 준비한다.

  여기서는 프로젝트를 생성할 때 MFC형식을 지원하도록 하기 위해서 An application that supports MFC를 선택해서 만들도록 하자. (만일 MFC를 지원하지 않은 형태로 프로젝트를 생성하였다면, getenv()함수는 stdlib.h파일을 include해야만 컴파일이 될 것이다. )

    // TODO: code your application's behavior here.
    CString strHello;
    strHello.LoadString(IDS_HELLO);
    cout << (LPCTSTR)strHello << endl;


  위와 같이 생성된 _tmain함수의 부분을 지우고 다음과 같이 변경하여 컴파일 하도록 하자.
     printf("Content-type: text/html\n\n");
     printf(" INPUT <HR>\n");
     printf("%s", getenv("QUERY_STRING"));


  다음은 실행 결과이다.

userid=deadfire&passwd=123&animal=tiger&area=seoul&conf1=111&comment=1111


  보는 바와 같이 UNIX환경과 동일하다!!!

- Last Update : 2001.11.30 by Deadfire(http://www.deadfire.net)

CGI with MFC
윈도우용 CGI
웹서버 설정
작성 방법
작동 원리
     - GET METHOD
     - POST METHOD
MDB사용하기
File Upload
앞으로...

Copyright ⓒ 1997 ~, Deadfire Program Master