5.1 확장개발-CGI 바이너리
인쇄
 
2009-07-09 18:59:53
조회:279457
답글지움수정 아랫글 목록 윗글

5.1 확장개발-CGI 바이너리


  쎄지오는 CGI 확장개발환경을 제공합니다. CGI는 시스템안의 모든 인트라셀에서 공통으로 사용할 수 있도록 제공됩니다.

따라서 쎄지오관리자가 해당 CGI를 검증 한 후 인트라셀에서 사용하도록 설치해주어야 합니다.


1) CGI 바이너리

  CGI는 "/etc/shttpd/cgi-bin/" 디렉토리에 위치하며 모든 인트라셀에서 사용할 수 있습니다. CGI는 독립적인 프로세서 형태로 실행되며 서버의 모든 영역에 접근할 수 있으므로 전체 인트라셀에서 공통적으로 사용될 수 있습니다.  따라서 인트라셀마다 별도의 CGI를 탑재하도록 지원하지 않습니다. 다음은 CGI의 호출에 따른 웹서버의 반응을 설명하고 있습니다.

 

URL) http://sm.kseek.com/cgi-bin/test.cgi    

  → /etc/shttpd/cgi-bin/test.cgi 의 실행결과를 웹브라우저에 전송합니다.


  가. URL 호출에 의한 실행

  URL 호출에 의한 실행은 가장 일반적인 CGI 실행방법입니다. CGI는 앞서 설명한 바와 같이 특정한 URL의 주소를 갖으며 웹브라우저가 URL을 요청하면 웹서버가 실행한 결과를 전송하게 됩니다. 다음은 C언어로 간단하게 구현된 CGI의 원본입니다.

 

#include <stdio.h>

#include <stdlib.h>

 

extern char **environ;

int main(int argc, char *argv[])

{

 int i,re;

 char **s;

 

 printf("Content-type: text/html; charset=UTF-8\n\n");

 printf("<html>\n<head>\n<title>test</title>\n</head>\n<body>\n");

 printf("$#shell#;"); //쉘을 호출합니다.

 printf("<b>test CGI</b><hr /><pre>\n=======Argument Variables===========\n");

 for(i=0;i<argc;i++)printf("argv[%d] :[%s]\n",i,argv[i]);

 printf("\n=======Environment Variables===========\n");

 for(s=environ;*s;s++)printf("%s\n",*s); //환경변수를 모두 출력합니다.

 printf("</pre></body></html>");

 return 0;

}

  

위의 소스파일을 컴파일하여 다음과 같은 실행결과를 얻을 수 있습니다.

 

  

  웹데몬은 CGI 바이너리를 호출하면서 여러 가지 정보를 환경변수 형식으로 전달합니다. CGI는 다음과 같은 다양한 정보를 전달받게 됩니다.

 

REQUEST_METHOD → 요청된 방법, 'GET' 이나 ‘POST'의 값을 반환합니다.

SCRIPT_FILENAME → cgi 스크립트의 이름

HOME   → 실행된 홈 디렉토리

DOCUMENT_ROOT  → HTML문서의 위치

REMOTE_USER  → 사용자의 ID

REMOTE_HOST  → 사용자의 접속위치(IP주소)

REMOTE_ADDR  → 사용자의 접속주소(도메인이름주소 혹은 IP주소)

REMOTE_LOCATION → 사용자의 이용위치; 인라인일 경우  /, /~summer/, /@game/ 등으로 표시

REMOTE_USERLEVEL → 사용자의 등급

REMOTE_LOCATIONLEVEL → 이용위치에서의 등급(동호회, 사용자 영역에서의 등급)

DISK_QUOTA  → 인트라셀의 디스크 허용 용량

USERHOME_QUOTA → 사용자의 디스크 허용용량

USERBOARD_MAX  → 사용자의 게시판 허용갯수

REMOTE_USERNAME → 사용자의 이름

REMOTE_REALNAME → 사용자의 본명

HTTP_REFERER  → 참조처(url이 링크된 위치)

CONTENT_LENGTH → 컨텐츠의 길이(POST일 때 업로드된 자료의 본문길이)

SERVER_NAME  → 인트라셀의 기본 호스트네임(메일주소 조합에 사용됨)

HTTP_HOST  → 사용자가 접속한 호스트명

HTTP_COOKIE  → 시용자의 쿠키

CONTENT_TYPE  → 컨텐츠 특성


  나. HTML 인라인 실행

   URL 호출에 의한 실행은 CGI를 호출하는 URL을 웹브라우저가 요청하는 형식을 취하지만 HTML인라인 실행은 웹필터링 스크립트에 의해 HTML 문서상에서 실행하여 실행결과를 HTML문서에 삽입시키는 방법입니다. "$#load,...#;"구문은 CGI 바이너리의 실행결과 "Content-type"이 "text/html"일 경우 실행결과로 얻어지는 문서를 조합합니다. 다음은 CGI를 인라인 호출로 실행시키는 예입니다.

 

<body bgcolor="#FFFFFF">

테스트 CGI 인라인으로 부르기<br />

<table bgcolor="#b0b0ff">

<tr>

<td style="padding:10 20 40 80;border-width:1;">

$#load,'/cgi-bin/test?call=allvariable'#;

</td></tr></table>

 

  위의 HTML은 다음 그림과 같이 구성됩니다.

 

  

HTML 인라인 호출에 의해 CGI가 실행되는 경우 "QUERY_STRING"로 지정되는 환경변수는 "$#load,...#;"구문에서 지정된 값을 갖습니다.

답글지움수정인쇄 아랫글 목록 윗글
댓글달기

쎄지오 매뉴얼 게시판의 게시물 목록
번호 파일 글제목 작성자 일시 조회
61 gif 파일 ticon10.4 CMS개요 케이시크 09-07-21 150311
60   ticon4.5 환경설정 케이시크 09-07-17 186493
59 jpg 파일 ticon6.8 게시판자동생성 [3] 관리자 09-07-14 187939
58 jpg 파일 ticon6.7 게시판아이콘 관리자 09-07-14 187810
57 jpg 파일 ticon6.6 게시판환경설정 관리자 09-07-14 187531
56 jpg 파일 ticon6.5 게시판관리 관리자 09-07-14 172042
55 jpg 파일 ticon3.7 환경 설정 관리자 09-07-14 204440
54 jpg 파일 ticon3.6 웹메일 필터 관리자 09-07-14 208608
53 gif 파일 ticon8.7 사용자관리 관리자 09-07-13 188286
52 jpg 파일 ticon10.3 플래시쇼 관리 sysop 09-07-10 196239
51 jpg 파일 ticon10.3 플래시쇼 개요 sysop 09-07-10 195164
50 gif 파일 ticon10.2 메뉴관리 sysop 09-07-10 174571
49 gif 파일 ticon10.1 프론트페이지 sysop 09-07-10 196498
48 jpg 파일 ticon9.4 업무용 메신저 sysop 09-07-10 466475
47 jpg 파일 ticon9.3 명함관리 sysop 09-07-10 201129
46 jpg 파일 ticon9.2 업무진행 sysop 09-07-10 194588
45 bmp 파일 ticon9.1 전자결재 sysop 09-07-10 207189
44 jpg 파일 ticon9.2 시스템구성 sysop 09-07-10 190768
43   ticon9.1 전자결재개요 sysop 09-07-10 186398
42   ticon8.6 자바환경설정 sysop 09-07-10 194859
41   ticon8.5 웹게시판 sysop 09-07-10 183219
40   ticon8.4 웹쪽지 sysop 09-07-10 190103
39   ticon8.3 웹메신저 sysop 09-07-10 381785
38 jpg 파일 ticon8.2 웹메일 서비스 sysop 09-07-10 260583
37 jpg 파일 ticon8.1 사용자 웹서비스 sysop 09-07-10 212007
36   ticon7.8 커뮤니티 게시판관리 sysop 09-07-10 207423
35   ticon7.7 커뮤니티 회원관리 sysop 09-07-10 212988
34 jpg 파일 ticon7.6 사용자 환경설정 sysop 09-07-10 210776
33   ticon7.5 동호회 연결하기 sysop 09-07-10 714638
32 jpg 파일 ticon7.4 신규동호회 개설 sysop 09-07-10 218203
31 jpg 파일 ticon7.3 커뮤니티 관리도구 sysop 09-07-10 221051
30 jpg 파일 ticon7.2 동호회, 사용자 홈페이지 로그인 sysop 09-07-10 201299
29   ticon7.1 커뮤니티 개요 sysop 09-07-10 195524
28 jpg 파일 ticon6.3 게시판 관리와 응용 sysop 09-07-09 209086
27 jpg 파일 ticon6.2 게시판 스타일 sysop 09-07-09 202286
26 jpg 파일 ticon6.1 게시판 목록/인증필터 sysop 09-07-09 344646
25 jpg 파일 ticon6.1 게시판 편집/보기필터 sysop 09-07-09 203071
24   ticon5.4 확장개발-JSP sysop 09-07-09 202243
23   ticon5.3 확장개발-사용자 관리 sysop 09-07-09 204122
22 jpg 파일 ticon5.2 확장개발-PHP sysop 09-07-09 185193
21 jpg 파일 ticon5.1 확장개발-CGI 바이너리 sysop 09-07-09 279457
20 jpg 파일 ticon4.4사용기록보기 sysop 09-07-09 191436
19 jpg 파일 ticon4.3 사용자관리 sysop 09-07-09 205909
18 jpg 파일 ticon4.2 로그인 및 관리도구 [1] sysop 09-07-09 214931
17 jpg 파일 ticon4.1 인트라셀이란 sysop 09-07-09 1248229
16 jpg 파일 ticon3.5 스팸메일 설정 sysop 09-07-09 605603
15 jpg 파일 ticon3.4 웹메일 사용자 기능 sysop 09-07-09 235119
14 jpg 파일 ticon3.3 웹메일 구성 sysop 09-07-09 238675
13 jpg 파일 ticon3.2 웹메일 환경설정 sysop 09-07-09 561438
12 jpg 파일 ticon3.1 웹메일 개요 sysop 09-07-09 229465
11   ticon2.6 기초필터파일 sysop 09-07-09 403478
10 jpg 파일 ticon2.5 웹편집기 sysop 09-07-09 205954
09 jpg 파일 ticon2.4 웹 디렉토리 sysop 09-07-09 231465
08 jpg 파일 ticon2.3 웹 레이아웃 sysop 09-07-09 257363
07 jpg 파일 ticon2.2 웹필터링 sysop 09-07-09 339188
06 jpg 파일 ticon2.1 쎄지오 웹자원 sysop 09-07-09 340695
05 jpg 파일 ticon1.5 쎄지오 관리 sysop 09-07-09 228660
04 jpg 파일 ticon1.4 처음 로그인 하기 sysop 09-07-09 235479
03 jpg 파일 ticon1.3 쎄지오 설치 2 sysop 09-07-09 446104
02 gif 파일 ticon1.2 쎄지오 설치 sysop 09-07-09 817565
01 gif 파일 ticon1.1 intro sysop 09-07-09 192717