WebtoB Reference Manual Copyright © 2005 Tmax Soft Co., Ltd. All Rights Reserved.
WebtoB Reference Manual
Copyright © 2005 Tmax Soft Co., Ltd. All Rights Reserved.
Copyright Notice Copyright©2005 Tmax Soft Co., Ltd. All Rights Reserved. Tmax Soft Co., Ltd. 대한민국 서울시 강남구 대치동 946-1 글라스타워 18 층 우)135-708 Restricted Rights Legend This software and documents are made available only under the terms of the Tmax Soft License Agreement and may be used or copied only in accordance with the terms of this agreement. No part of this document may be reproduced, transmitted, or translated in any form or by any means, electronic, mechanical, manual, or optical, without the prior written permission of Tmax Soft Co., Ltd. 이 프로그램과 문서는 TmaxSoft 라이선스 동의하에서만 만들거나, 사용되거나, 복사될 수 있습니다. TmaxSoft Co., Ltd.의 허락없이 이 문서의 일부분이나 전체를 전자적, 기계적, 광학적, 수작업 등 어떤 방법으로든 복사, 재생산, 번역 등을 할 수 없습니다. Trademarks Tmax, WebtoB, WebT, and JEUS are registered trademarks of Tmax Soft Co., Ltd. All other product names may be trademarks of the respective companies with which they are associated. Tmax, WebtoB, WebT, JEUS 는 TmaxSoft Co., Ltd.의 등록 상표입니다. 기타 모든 제품들과 회사 이름은 각각 해당 소유주의 상표로서 참조용으로만 사용됩니다. Document info Document name: “WebtoB Reference Manual” Document date: 2005-09-23 Manual release version: 4.1 Software Version: WebtoB 4.1
WebtoB Reference Manual WebtoB
TmaxSoft 1
-- 차 례 --
매뉴얼에 대하여 ............................................................................... 6
일러두기 ................................................................................................................................. 8
제품별 기능............................................................................................................................ 9
1 명 령 어..................................................................................... 11
1.1 wscfl...................................................................................................................... 11
1.1.1 Name.............................................................................................................. 11
1.1.2 Synopsis ......................................................................................................... 11
1.1.3 Description...................................................................................................... 11
1.1.4 Environment ................................................................................................... 12
1.1.5 Example.......................................................................................................... 12
1.1.6 See Also ......................................................................................................... 12
1.2 wsuncfl ................................................................................................................. 13
1.2.1 Name .............................................................................................................. 13
1.2.2 Synopsis ......................................................................................................... 13
1.2.3 Description...................................................................................................... 13
1.2.4 Environment ................................................................................................... 14
1.2.5 Example.......................................................................................................... 14
1.2.6 See Also ......................................................................................................... 14
1.3 wsgst..................................................................................................................... 14
1.3.1 Name .............................................................................................................. 14
1.3.2 Synopsis ......................................................................................................... 14
1.3.3 Description...................................................................................................... 14
1.3.4 Environment ................................................................................................... 15
1.3.5 Example.......................................................................................................... 15
1.3.6 See Also ......................................................................................................... 16
1.4 wsracd .................................................................................................................. 16
1.4.1 Name .............................................................................................................. 16
1.4.2 Synopsis ......................................................................................................... 16
1.4.3 Description...................................................................................................... 16
1.4.4 Environment ................................................................................................... 17
1.4.5 Example.......................................................................................................... 17
1.4.6 See Also ......................................................................................................... 17
WebtoB WebtoB Reference Manual
TmaxSoft 2
1.5 wsadmin ............................................................................................................... 17
1.5.1 Name .............................................................................................................. 17
1.5.2 Synopsis ......................................................................................................... 17
1.5.3 Description...................................................................................................... 17
1.5.4 Environment ................................................................................................... 22
1.5.5 Example.......................................................................................................... 22
1.5.6 See Also ......................................................................................................... 22
1.6 wsboot .................................................................................................................. 22
1.6.1 Name .............................................................................................................. 22
1.6.2 Synopsis ......................................................................................................... 22
1.6.3 Description...................................................................................................... 22
1.6.4 Environment ................................................................................................... 24
1.6.5 Example.......................................................................................................... 24
1.6.6 See Also ......................................................................................................... 25
1.7 wsdown................................................................................................................. 25
1.7.1 Name .............................................................................................................. 25
1.7.2 Synopsis ......................................................................................................... 25
1.7.3 Description...................................................................................................... 25
1.7.4 Environment ................................................................................................... 26
1.7.5 Example.......................................................................................................... 26
1.7.6 See Also ......................................................................................................... 27
2 함 수 ........................................................................................ 28
2.1 INIT/DONE API ................................................................................................... 28
2.1.1 wbSvrInit......................................................................................................... 28
2.1.2 wbSvrDone ..................................................................................................... 31
2.2 ALLOC API......................................................................................................... 34
2.2.1 wbMalloc......................................................................................................... 34
2.2.2 wbFree............................................................................................................ 37
2.3 GET API .............................................................................................................. 40
2.3.1 wbGetAuthType.............................................................................................. 40
2.3.2 wbGetContentLength ..................................................................................... 43
2.3.3 wbGetDocumentRoot ..................................................................................... 47
2.3.4 wbGetMethod ................................................................................................. 49
2.3.5 wbGetParsedURI............................................................................................ 54
2.3.6 wbGetPathInfo................................................................................................ 57
2.3.7 wbGetPathTranslated..................................................................................... 60
2.3.8 wbGetProtocol ................................................................................................ 63
2.3.9 wbGetQueryString .......................................................................................... 65
2.3.10 wbGetRemoteAddr......................................................................................... 69
2.3.11 wbGetRemoteHost ......................................................................................... 72
2.3.12 wbGetRemoteUser......................................................................................... 76
2.3.13 wbGetRequestURI ......................................................................................... 79
WebtoB Reference Manual WebtoB
TmaxSoft 3
2.3.14 wbGetScheme................................................................................................ 82
2.3.15 wbGetScriptFilename ..................................................................................... 84
2.3.16 wbGetScriptName .......................................................................................... 87
2.3.17 wbGetServerName......................................................................................... 90
2.3.18 wbGetServerPort ............................................................................................ 93
2.3.19 wbGetServerSoftware .................................................................................... 95
2.3.20 wbGetTranslatedURI ...................................................................................... 98
2.3.21 wbGetHdr ..................................................................................................... 101
2.3.22 wbGetDateHdr.............................................................................................. 104
2.3.23 wbGetIntHdr ................................................................................................. 107
2.3.24 wbGetNthHdr................................................................................................ 110
2.3.25 wbGetHdrCount............................................................................................ 112
2.3.26 wbGetData.................................................................................................... 115
2.3.27 wbGetNthKey ............................................................................................... 118
2.3.28 wbGetNthData .............................................................................................. 122
2.3.29 wbGetDataCount .......................................................................................... 126
2.3.30 wbGetValue .................................................................................................. 130
2.3.31 wbKeyOccur ................................................................................................. 133
2.3.32 wbGetReqLine.............................................................................................. 136
2.3.33 wbGetRequestURL ...................................................................................... 139
2.3.34 wbGetFileName............................................................................................ 142
2.3.35 wbGetFileLen ............................................................................................... 146
2.4 PUT/SET API .................................................................................................... 149
2.4.1 wbPutHdr...................................................................................................... 149
2.4.2 wbPutIntHdr.................................................................................................. 152
2.4.3 wbSetStatus.................................................................................................. 154
2.4.4 wbPutStr ....................................................................................................... 157
2.4.5 wbPut............................................................................................................ 159
2.4.6 wbPrint.......................................................................................................... 162
2.4.7 wbPutFile...................................................................................................... 164
2.4.8 wbPutPartialFile............................................................................................ 167
2.5 COOKIE API ..................................................................................................... 171
2.5.1 wbCreateCookie........................................................................................... 171
2.5.2 wbGetCookie ................................................................................................ 173
2.5.3 wbPutCookie ................................................................................................ 176
2.5.4 wbCookieGetDomain ................................................................................... 179
2.5.5 wbCookieGetName ...................................................................................... 181
2.5.6 wbCookieGetPath......................................................................................... 184
2.5.7 wbCookieGetValue ....................................................................................... 186
2.5.8 wbCookieGetVersion.................................................................................... 188
2.5.9 wbCookieSetComment................................................................................. 191
2.5.10 wbCookieSetDomain.................................................................................... 193
2.5.11 wbCookieSetMaxAge ................................................................................... 196
2.5.12 wbCookieSetPath......................................................................................... 198
2.5.13 wbCookieSetSecure..................................................................................... 201
2.5.14 wbCookieSetValue ....................................................................................... 203
WebtoB WebtoB Reference Manual
TmaxSoft 4
2.5.15 wbCookieSetVersion .................................................................................... 205
2.6 SESSION API ................................................................................................... 208
2.6.1 wbGetSession .............................................................................................. 208
2.6.2 wbSessionGetCreationTime......................................................................... 210
2.6.3 wbSessionGetId ........................................................................................... 213
2.6.4 wbSessionGetLastAccessedTime................................................................ 215
2.6.5 wbSessionGetValue ..................................................................................... 217
2.6.6 wbSessionGetValueNames.......................................................................... 220
2.6.7 wbSessionGetMaxInactiveInterval ............................................................... 222
2.6.8 wbSessionSetMaxInactiveInterval................................................................ 225
2.6.9 wbSessionSetValue...................................................................................... 228
2.6.10 wbSessionRemoveValue.............................................................................. 230
2.6.11 wbSessionIsNew .......................................................................................... 233
2.6.12 wbSessionInvalidate..................................................................................... 235
2.6.13 wbGetRequestedSessionId.......................................................................... 239
2.6.14 wbIsRequestedSessionIdValid ..................................................................... 242
2.7 SEND API ......................................................................................................... 246
2.7.1 wbFlush ........................................................................................................ 246
2.7.2 wbSendError................................................................................................. 249
2.7.3 wbSendRedirect ........................................................................................... 252
2.7.4 wbReturn ...................................................................................................... 254
2.8 ETC API ............................................................................................................ 258
2.8.1 wbSaveFile ................................................................................................... 258
2.8.2 wbGetErrno .................................................................................................. 262
3 부 록 .................................................................................... 265
3.1 WBAPI.H 헤더 파일 ........................................................................................... 265
3.2 Makefile............................................................................................................... 270
3.2.1 Compile ........................................................................................................ 270
3.2.2 Makefile.c ..................................................................................................... 271
WebtoB Reference Manual WebtoB
TmaxSoft 5
WebtoB WebtoB Reference Manual
TmaxSoft 6
매뉴얼에 대하여
본 매뉴얼은 WebtoB 시스템을 구동 및 관리하기 위한 명령어와 WebtoB 시스템을 적용한 WBAPI 프로그램을 개발하기 위한 함수를 설명한다.
본 매뉴얼에 기술되어 있는 내용은 Unix/Linux, Windows 환경에서 테스트 및 검증되었다. 본 매뉴얼은 WebtoB System 을 사용하는 환경이 UNIX 라고 가정하고 있고, 사용자가 UNIX 환경 및 현재 사용되고 있는 각 UNIX 기종의 특성들에 기본지식이 있다는 가정하에 작성 되었다. 만약 사용자가 UNIX 의 명령어나 유틸리티 사용법 등에 관한 기본 지식이 없다면, 관련 서적을 참고하거나 시스템 매뉴얼을 참고해야 한다.
본 매뉴얼은 크게 두 부분으로 구성되어 있으며 그 내용은 다음과 같다.
Chapter 1
WebtoB 시스템을 구동하고 종료하는 명령어 및 관리하기 위한 명령어를 설명한다. 그리고 시스템 환경파일을 컴파일해서 최종적으로 시스템을 부팅시키는 명령어까지 자세한 설명과 예제를 덧붙여 이해를 돕도록 했다.
Chapter 2
WebtoB 시스템을 적용해서 WBAPI 프로그램을 개발할 있도록 각종 함수를 설명한다. 함수에 대한 자세한 설명을 통하여 함수의 사용 방법을 이해할 수 있도록 하였다. 또한 예제를 덧붙여 API 함수를 이용하는데 용이하도록 했다.
각 절에서 사용된 레이블은 다음과 같은 의미를 갖는다.
Name : 주어진 명령어 및 함수에 대한 이름과 간단한 사용 목적 설명
Synopsis : 주어진 명령어 및 함수에 대한 사용 방법 요약 설명
WebtoB Reference Manual WebtoB
TmaxSoft 7
Description : 명령어 및 함수에 대한 상세한 설명
Environment : 적용 가능한 시스템 설명
Example : 명령어 및 함수에 대한 이해를 위한 예제 설명
Error : 발생 가능한 오류 설명
See Also : 관련된 명령어 및 함수 설명
WebtoB WebtoB Reference Manual
TmaxSoft 8
일러두기
표기 예 내용
텍스트 본문, 12 포인트, 바탕체 Times New Roman
텍스트 본문 강조
CTRL+C CTRL 과 동시에 C 를 누름
public class myClass { } Java 코드
<system-config> XML 문서
참조: / 주의:` 참조 사항과 주의할 사항
Configuration 메뉴를 연다 GUI 의 버튼 같은 컴포넌트
WEBTOBDIR WebtoB 가 실제 설치된 디렉토리
예)c:\TmaxSoft\WebtoB4.1
wsboot 콘솔 명령어와 문법
[ 파라미터 ] 옵션 파라미터
< xyz > ‘<’와 ‘>’ 사이의 내용이 실제
값으로 변경됨
| 선택 사항. 예) A|B: A 나 B 중
하나
… 파라미터 등이 반복되어서 나옴
?, +, * 보통 XML 문서에 각각 “없거나, 한 번”, “한 번 이상”, “없거나,
WebtoB Reference Manual WebtoB
TmaxSoft 9
여러 번”을 나타낸다.
. . . XML 이나 코드 등의 생략
<<FileName.ext>> 코드의 파일명
그림 1. 그림 이름이나 표 이름
제품별 기능
제품 구분 제공 기능
Base HTML, CGI, PHP, SSI, SSL, WBAPI
Standard Base 제공기능, Multi-Node, JSP/Servlet ,
Load Balancing, Fail-Over
WebtoB WebtoB Reference Manual
TmaxSoft 10
연락처
Korea Tmax Soft Co., Ltd 18F Glass Tower, 946-1, Daechi-Dong, Kangnam-Gu, Seoul 135-708 South Korea Tel: 82-2-6288-2114 Fax: 82-2-6288-2115 Email: [email protected] Web (Korean): http://www.tmax.co.kr USA Tmax Soft, Inc. 560 Sylvan Ave, Englewood Cliffs NJ 07632 USA Tel: 1-201-567-8266 FAX: 1-201-567-7339 Email: [email protected] Web (English): http://www.tmaxsoft.com Japan Tmax Soft Japan Co., Ltd. 6-7 Sanbancho, Chiyoda-ku, Tokyo 102-0075 Japan Tel: 81-3-5210-9270 FAX: 81-3-5210-9277 Email: [email protected] Web (Japanese): http://www.tmaxsoft.co.jp China Beijing Silver Tower, RM 1507, 2# North Rd Dong San Huan, Chaoyang District, Beijing, China, 100027 Tel: 86-10-6410-6148 Fax: 86-10-6410-6144 E-mail : [email protected] Web (Chinese): http://www.tmaxchina.com.cn
WebtoB Reference Manual WebtoB
TmaxSoft 11
1 명 령 어
1.1 wscfl 1.1.1 Name
wscfl : 텍스트 형태의 WebtoB 환경파일을 컴파일하여 wsconfig(이진 WebtoB 환경파일)을 만드는 명령어
1.1.2 Synopsis
$ wscfl -i 텍스트 WebtoB 환경파일 이름 [ -o 이진 WebtoB 환경파일 이름 ] [ -b ][ -v ] [ -n 노드 이름 ]
1.1.3 Description
어떠한 프로그램을 동작시키기 위해서는 프로그램에 맞는 환경파일 정의가 필요하다. 이런 환경파일 정의가 끝나면, 정의한 환경파일이 올바르게 만들어 졌는지 검증이 이루어져야 한다. 이렇게 텍스트 형태로 작성된 WebtoB 환경파일을 검증하여 이진(wsconfig) 파일로 변환하는 명령어가 wscfl 이다.
입력 파일을 컴파일하는 중에 에러가 발견되면, 이진 WebtoB 환경파일을 만들지 않고 컴파일을 중단하게 된다. 에러가 발견되지 않으면, 이진 파일로 변환된 WebtoB 환경파일이 만들어 진다. 이 명령어로 만들어진 WebtoB 환경파일은 wsgst, wsboot, wsdown 등에서 사용한다.
[ -i 텍스트 WebtoB 환경파일 이름 ] : 이 옵션은 컴파일 대상이 되는 환경파일, 즉 텍스트 형태의 WebtoB 환경파일 이름을 명시하는데 사용되며, 반드시 필요한 옵션이다. 경로와 함께 지정될 수 있으며, 지정한 환경파일을 찾지 못한 경우에는 경고 메세지를 출력한다.
[ -o 이진 WebtoB 환경파일 이름 ] : 이 옵션은 컴파일 결과물인 이진 WebtoB 환경파일 이름을 명시하는데 사용된다. 이는 선택 옵션으로 경로와 함께 지정할 수 있으며, 경로가 지정되지 않은 경우 현재 wscfl 명령을 실행중인 디렉토리에 명시된 이름으로 컴파일된 결과물이 만들어지게 된다. 이 옵션이 생략되면 Default 로 ‘wsconfig’라는 이름의 파일로 생성된다.
WebtoB WebtoB Reference Manual
TmaxSoft 12
[ -b ] : 이 옵션은 WebtoB 의 환경 설정파일을 백업한다.
[ -v ] : 이 옵션은 WebtoB 의 version 을 확인하는데 사용된다.
[ -n 노드 이름 ] : Multi node 상에서 지정된 node 에서만 wscfl 이 실행되도록 하는데 사용된다.
1.1.4 Environment
wscfl 는 WebtoB 시스템이 설치된 운영 시스템 환경에서 사용할 수 있다
1.1.5 Example
$ wscfl -i sample.m
현재 디렉토리의 ‘sample.m’이란 텍스트 형태의 WebtoB 환경파일을 컴파일하여 현재 디렉토리에 Default 로 ‘wsconfig’라는 이진 WebtoB 환경파일을 만들라는 의미이다.
$wscfl -i sample.m -o wsconfig2
현재 디렉토리의 ‘sample.m’라는 텍스트 형태의 WebtoB 환경파일을 컴파일하여, 현재 디렉토리에 ‘wsconfig2’라는 이름으로 이진 WebtoB 환경파일을 만들라는 의미이다.
$wscfl -v
WebtoB 의 version 을 확인한다.
$wscfl –i sample.m –n www
Multi node 상에서 ‘sample.m’이라는 텍스트 형태의 WebtoB 환경파일을 ‘www’이라는 node 에서만 컴파일하여, 현재 디렉토리에 Default 로 ‘wsconfig’라는 이진 WebtoB 환경파일을 만들라는 의미이다.
1.1.6 See Also
Wsuncfl, wsgst, wsboot, wsdown
WebtoB Administration Guide
WebtoB Reference Manual WebtoB
TmaxSoft 13
1.2 wsuncfl 1.2.1 Name
wsuncfl : 컴파일된 wsconfig(이진 WebtoB 환경 파일)을 다시 역으로 분석하여 텍스트 형태의 환경 파일을 만드는 명령어
1.2.2 Synopsis
$ wscfl [ -i 이진 WebtoB 환경파일 이름 | -n 백업리스트 버전] -o 텍스트 WebtoB 환경파일 이름 [ -v ] [ -n 노드 이름 ] [-l]
1.2.3 Description
wscfl 로 컴파일되어 이진파일로 변한 환경설정파일을 알아 볼 수 있는 텍스트 형태로 변환하여 준다. 간혹 환경파일의 원본을 잃어버리고 이진 파일만 가지고 있는 경우 원래의 텍스트 형태의 환경 복구하기가 쉬운일이 아니다. wsuncfl 을 사용하면 환경설정 파일 히스토로가 관리될 뿐만 아니라, 텍스트 형태로 완벽하게 복원 시킬 수도 있다.
[ -i 이진 WebtoB 환경파일 이름 ] : 이 옵션은 디컴파일 대상이 되는 바이너리 형태의 환경파일이 이름을 명시하는데 사용된다. 이는 선택 옵션으로 경로와 함께 지정할 수 있으며, 지정한 환경파일을 찾지 못한 경우에는 경고 메세지를 출력한다. 이 옵션이 생략되면 Default 로 ‘wsconfig’라는 이름의 파일로 생성된다.
[ -o 텍스트 WebtoB 환경파일 이름 ] : 이 옵션은 디컴파일 결과물인 텍스트 WebtoB 환경파일 이름을 명시하는데 사용된다. 이는 반드시 필요한 옵션으로 경로와 함께 지정할 수 있으며, 경로가 지정되지 않은 경우 현재 wsuncfl 명령을 실행중인 디렉토리에 명시된 이름으로 디컴파일된 결과물이 만들어지게 된다.
[ -v ] : 이 옵션은 WebtoB 의 version 을 확인하는데 사용된다.
[ -n 백업리스트 버전 ] : 백업된 리스트중 복구하고자 하는 버전을 지정한다.
[ -l ] : wscfl 로 환경파일 컴파일시 –b 옵션을 주면 백업이 되는데, 이때 백업된 리스트는 고유한 번호인 버전을 가지는데, 버전과 생성된 날짜 그리고 환경 설정파일 명을 확인 할 수 있는 리스트를 볼 수 있다.
WebtoB WebtoB Reference Manual
TmaxSoft 14
1.2.4 Environment
wsuncfl 는 WebtoB 시스템이 설치된 운영 시스템 환경에서 사용할 수 있다
1.2.5 Example
$ wsuncfl –o sample_r.m
현재 디렉토리의 ‘wsconfig’라는 이름의 이진 WebtoB 환경 파일을, 현재 디렉토리에 ‘sample_r.m’이라는 텍스트 형태의 WebtoB 환경 파일로 디컴파일 한다.
$ wsuncfl -n 2 -o admin_r.m
백업된 환경설정의 버전 ‘2’에 해당하는 설정 내용을 현재 디렉토리에 ‘admin _r.m’이라는 텍스트 형태의 WebtoB 환경 파일로 디컴파일 한다.
$ wsuncfl –l
백업된 환경설정의 버전, 날짜, 텍스트 환경설정파일이름 리스트를 확인 할 수 있다.
1.2.6 See Also
wscfl
WebtoB Administration Guide
1.3 wsgst 1.3.1 Name
wsgst : 이진 WebtoB 환경파일을 참조하여 서비스 테이블을 생성하는 명령어
1.3.2 Synopsis
$ wsgst [ -f 이진 WebtoB 환경파일 이름 ]
1.3.3 Description
wsgst 는 wscfl 명령어 의해서 만들어진 이진 WebtoB 환경파일의 SERVER 절과 SERVICE 절을 참조하여 각 서버별로 서비스 테이블을 생성한다. 이 테이블은 서버 프로세스에서 제공하는 서비스 명단으로써 서버 프로그램을 작성하여 컴파일 할 때 함께 컴파일 되어, 서버 프로세스 동작시에 서비스 위치를 찾는데 사용된다.
WebtoB Reference Manual WebtoB
TmaxSoft 15
wsgst 명령의 결과는 WEBTOBDIR(WebtoB Administration Guide Appendix 의 NODE 절 참조)로 지정된 디렉토리 하위의 ‘svct’ 디렉토리에 ‘서버 이름_svctab.c’의 이름으로 만들어 진다. 서버 이름은 SERVER 절에 등록된 서버 이름이며, 각 파일의 내용은 SERVICE 절에 등록된 해당 서버가 제공하는 서비스 이름들이다.
따라서 WebtoB 환경파일에 등록된 서비스는 반드시 해당 서버의 서비스 테이블에도 등록이 되어야 한다. 즉, WebtoB 환경파일의 SERVER 절이나 SERVICE 절에 서버 이름, 서비스 이름, 서비스의 SVRNAME 등이 변경된 경우, wsgst 명령을 실행시킨 후 그 결과물인 서비스 테이블과 함께 서버 프로그램을 다시 컴파일 시켜야 한다.
[ -f 이진 WebtoB 환경파일 이름 ] : 이 옵션은 참조할 이진 WebtoB 환경파일 이름을 명시하는데 사용된다. 이는 wscfl 의 결과물로써 wsboot 와 wsdown 에서도 참조되는 파일이다. 경로와 함께 지정될 수 있으며, 이 옵션이 생략되면 Default 로 WEBTOBDIR 로 지정된 디렉토리 하위의 config 디렉토리에서 ‘wsconfig’을 참조한다.
1.3.4 Environment
wsgst 는 WebtoB 시스템이 설치된 운영 시스템 환경에서 사용할 수 있다.
1.3.5 Example
$ wsgst
WEBTOBDIR 로 지정된 디렉토리 하위의 config 디렉토리에서 ‘wsconfig’을 참조하여 서비스 테이블을 만든다.
$ wsgst -f /user1/park/webtob/config/wsconfig2
‘/user1/park/WebtoB/bin’ 디렉토리의 ‘wsconfig2’ 환경파일을 참조하여 서버별로 서비스 테이블을 만든다.
예를들어 환경파일을 다음 페이지와 같이 등록한 경우 ‘/user1/park/webtob/svct’ 디렉토리에 webaps_svctab.c 라는 서비스 테이블이 만들어진다.
...
*SERVER
webaps SVGNAME=webapsg
*SERVICE
svc1 SVRNAME=webaps
WebtoB WebtoB Reference Manual
TmaxSoft 16
svc2 SVRNAME=webaps
...
1.3.6 See Also
wscfl, wsboot, wsdown
WebtoB Administration Guide
1.4 wsracd
1.4.1 Name
wsracd : 멀티 노드로 분산된 환경에서 중앙 집중 관리하기 위한 명령어
1.4.2 Synopsis
$ wsracd [ -k ] [ -f 이진 WebtoB 환경파일 이름 ]
1.4.3 Description
wsracd 는 여러 개의 노드를 하나의 도메인으로 WebtoB 시스템을 구축하였을 경우 한 노드에서 WebtoB 시스템을 집중 관리하기 위해, 각각의 노드에서 미리 기동되는 하나의 Daemon 프로세스라 할 수 있다.
wsracd 는 도메인 내의 한 노드에서 wsadmin 을 통하여 전체 노드를 관리하거나, 또는 환경파일을 도메인 내의 모든 노드에 동일한 내용으로 적용 가능하도록 처리한다.
[ -k ] : 이 옵션은 이진 WebtoB 환경파일을 참조 할것인지 참조하지 않을 것이지를 지정하는 옵션이다. 이 옵션을 지정하면 이진 WebtoB 환경파일을 참조하지 않고 default port 로 설정되어 있는 port 를 사용한다.
환경변수로 WEBTOB_RAC_PORT 를 설정하였다면 환경변수로 설정된 port 를 사용한다. 보통 wsracd 는 이 옵션을 이용하여 실행한다.
[ -f 이진 WebtoB 환경파일 이름 ] : 이 옵션은 사용자가 지정한 이진 WebtoB 환경파일을 참조하여 실행한다. 사용자가 지정한 이진 WebtoB 환경파일에 설정된 port 를 사용한다.
WebtoB Reference Manual WebtoB
TmaxSoft 17
1.4.4 Environment
wsracd 는 WebtoB 시스템이 설치된 운영 시스템 환경에서 사용할 수 있다.
1.4.5 Example
$ wsracd
이진 WebtoB 환경파일을 참조하여 실행한다. 옵션을 사용하지 않으면 default 로 WEBTOBDIR 로 지정된 디렉토리 하위의 config 디렉토리에서 ‘wsconfig’을 참조한다. 이때 ‘wsconfig’파일이 존재하지 않으면 에러 메시지를 출력한다.
$ wsracd –k
환경파일을 참조하지 않고 다른 명령어(wsboot)에서 사용한 정보만 이용한다.
$ wsracd –f /user1/park/webtob/config/wsconfig2
사용자가 지정한 ‘/user1/park/webtob/config/wsconfig2’ 라는 이진 WebtoB 환경파일을 참조하여 실행한다.
1.4.6 See Also
wsboot, wsdown, WebtoB Administration Guide
1.5 wsadmin 1.5.1 Name
wsadmin : WebtoB 시스템 관리 툴
1.5.2 Synopsis
$ wsadmin [ -l ]
1.5.3 Description
wsadmin 프로그램은 WebtoB 시스템의 동적인 관리를 위해 command interpreter 형태로 제공되는 모니터 프로그램이다. WebtoB 시스템이 사용하는 공유 메모리의 정보를 읽어서 동작중인 시스템의 환경 설정 내용이나 서버 프로세스의 동작상태, 또는 서비스 상태등을 파악할 수 있다.
[ -l ] : WebtoB 시스템이 여러 노드로 구성되었을 경우 이 옵션을 사용하지 않으면 하나의 노드에서 여러 노드를 관리할 수 있지만, 이
WebtoB WebtoB Reference Manual
TmaxSoft 18
옵션을 사용하면 여러 노드로 구성된 시스템에서 자신의 노드만을 관리하기 위한 옵션이다.
wsadmin 툴에서는 다음과 같은 명령어를 사용할 수 있다.
ci : 현재 접속된 Web Browser 의 환경정보를 알려 준다. 현재 상태(status), 접속 IP Address, 처리건수(count)와 같은 Web Browser 의 제반 정보를 확인할 수 있다.
config (cfg) : 현재 동작 중인 시스템의 환경 정보를 알려 준다. 즉, 환경파일에서 정의된 도메인, 노드, 서버그룹, 서버, 서비스별로 Default 값까지 포함한 모든 환경 정보를 확인할 수 있다.
옵 션 내 용
-d 도메인 (domain)
-n 노드 (Node)
-g [서버그룹 이름] 서버그룹 (Server Group)
-v [서버 이름] 서버 (Server)
ds : 현재 접속되어 있거나 아무 일도 수행하지 않는 Web Browser 를 강제로 연결해제 할 수 있다. Web Browser 정보를 얻을 수 있는 ‘ci’ 명령어로 확인후 사용한다.
옵 션 내 용
-h [HTH 번호] 연결을 끊고자 하는 HTH 를 설정
-a HTH 에 연결된 모든 Web Browser 접속해제
-n [이름] 연결시 설정된 Web Browser 이름
-i [idle time] 지정된 시간(초)이상 경과된 Web Browser
-c [Client ID] Web Browser 에 부여된 ID 번호
WebtoB Reference Manual WebtoB
TmaxSoft 19
-f 즉시 연결해제
history : shell 에서와 같이 명령어를 기억함으로써 편리하게 사용할 수 있다.
logstart : 관리자는 wsadmin tool 을 사용하여 여러가지 실시간 정보를 살펴볼 수 있다. 따라서 주어진 상황에 맞는 즉각적이고 효과적인 조치를 취할 수 있다. 또한 wsadmin tool 에서는 통계적 정보 분석을 위해 wsadmin tool 정보 데이터를 로그로 남길 수 있다. Logging 파일은 현재 디렉토리에 만들어진다. 로그 데이터를 통해 업무 폭주 시간, 불필요한 서버프로세스, 큐잉 상태등을 확인하여 전반적인 시스템 분석이 가능하다. 명령어 사용은 다음과 같다.
$$1 WebtoB1 (wsadm): logstart filename
$$1 WebtoB1 (wsadm): logend
logstart 명령어를 통해서 log 처리를 시작할 수 있으며 logend 명령어를 통해 끝낸다.
rbs : 현재 사용중인 서버 프로세스를 새로운 프로세스로 변경하고자 하는 경우에 사용한다. WEBTOB_BKAPPDIR 를 환경 변수에 지정하고 새로운 프로그램을 지정된 디렉토리에 옮기고 다음의 명령어를 수행한다.
$$1 WebtoB1 (wsadm): rbs new_file old_file
new_file: 변경된 파일(object file)
old_file : 현재 실행중인 파일(object file)
suspend(sp) : 동작중인 서버 프로세스의 활동을 중지시킨다. 중지된 서버프로세스는 현재 처리중인 서비스를 정상 완료한 후 더 이상의 동작은 중지하고, 큐에 있는 서비스들은 대기상태가 된다.
옵 션 내 용
-v [서버 프로세스 이름] 서버 (server)
resume(rs) : 동작 중지된 서버 프로세스의 활동을 재개시킨다. 활동이 재개된 서버 프로세스는 큐에 대기중이던 서비스를 처리하기 시작하며 요청되는 서비스에 대해 처리 가능 상태가 된다.
WebtoB WebtoB Reference Manual
TmaxSoft 20
옵 션 내 용
-v [서버 프로세스 이름] 서버 (server)
qp : 업무의 폭주 현상이 발생하여 많은 업무가 적체되어 정상적으로 거래를 처리하지 못하는 경우, 현재 큐에 적체되어 있는 서비스 요청을 삭제하므로써 원활한 업무수행을 유도하는 기능이다. 하루에도 수십만건의 업무를 처리하는 은행이나 관공서에서 유용하게 사용될 수 있는 기능으로서 삭제된 업무는 Web Browser 의 재요청을 통하여 다시 처리될 수 있다. WebtoB 에서는 서버 프로세스별로 큐를 관리함으로써 관리자는 특정 서버별로 큐를 삭제할 수 있다. 따라서 특정 업무별로 처리가 가능하며 이는 타 업무의 효과적인 수행에도 도움을 줄 수 있다.
qp 를 통해 삭제된 서비스는 Web Browser 에게 에러를 반환하게 되고 ”503 Service Temporarily Unavailable”이라는 에러를 화면에 나타낸다. 따라서 Web Browser 는 이에 맞게 적절한 대처를 할 수 있다.
옵 션 내 용
-v [서버 프로세스 이름] 서버 (server)
quit(q) : wsadmin 툴을 종료한다.
set : 현재 설정되어 있는 환경파일의 설정 값을 동적으로 변경할 수 있는 명령어로서 사용법은 다음과 같다. 변경 가능항목은 wsadmin 에서 cfg 명령어를 통해서 확인할 수 있다. 각 항목중에서 괄호로서 약어를 표시한 항목이 동적으로 변경가능한 항목이다.
set –d[g, v, s] 도메인[서버그룹, 서버, 서비스] 명 항목 값
$$1 WebtoB1(wsadm): set –d webtob1 bt 100
block time 값을 100 초로변경
$$1 WebtoB1(wsadm): set –g svg1 ld 5
load 값을 5 로 변경
$$1 WebtoB1(wsadm): set –v kfdl1 mq 1000
WebtoB Reference Manual WebtoB
TmaxSoft 21
max qcount 값을 1000 으로 변경
si : 현재 동작 중인 각 서버 프로세스의 정보를 알려 준다.
즉, 현재 상태(status, RDY : 서비스 가능, NRDY : 서비스 불능), 처리 건수(count), 큐잉 건수(qcount), 큐에서 삭제된 건수(qpcount), 최대 큐잉 건수(maxqcount)를 초과하여 반환된 건수(emcount)등을 확인할 수 있다.
stat(st) : 실질적인 시스템 동작 상태를 나타내며, 동작중인 서버 프로세스와 서비스에 대한 정보를 알 수 있다. 즉 서버 프로세스의 현재 상태, 처리중인 서비스 이름, 처리한 서비스 개수, 서비스에 대한 상태, 서비스 큐에 존재하는 서비스 요청 개수등과 같은 동적인 정보를 확인할 수 있다.
옵 션 내 용
-p [서버 프로세스 이름] 서버 (server)
-s [서비스 이름] 서비스 (service)
-n [라인 수] 라인만큼 화면에 출력
-l Local mode (로컬 모드)
-i [시간 간격] 동작상태 출력간격 (초단위)
-f [전체 시간] 시간간격 단위로 출력할 총시간
-k [횟수] 시간간격 단위로 출력할 횟수
$$1 WebtoB1 (wsadm): st -s -i 5 -k 30
$$1 WebtoB1 (wsadm): st -p -i 5 -f 30
첫번째 명령어는 5 초간의 간격을 두고 ‘st –s’를 30 번 수행하라는 의미이며 두번째 명령어는 5 초간의 간격을 두고 ‘st –p’를 30 초간 수행하는 의미이다. 반복적인 명령어 수행은 상태 정보를 모니터링 할 뿐 아니라 업무수행에 대한 디버깅에도 많은 도움을 줄 수 있다.
WebtoB WebtoB Reference Manual
TmaxSoft 22
wi : 현재 접속된 WebtoB 시스템의 환경 정보를 알려 준다. 시스템 버전(version), 최대 사용자수(maxuser), 사용만료기한 (데모 버전 사용시) 정보 등을 확인할 수 있다.
1.5.4 Environment
wsadmin 는 WebtoB 시스템이 설치된 운영 시스템 환경에서 사용할 수 있다.
1.5.5 Example
% wsadmin
wsadmin 툴은 이와 같이 실행된다.
이후 아래와 같은 메세지와 함께 프롬프트(prompt)가 나타난다. 이것이 wsadmin 프로그램 실행 상태임을 나타낸다.
--- Wecome to WebtoB Admin (Type "quit" to leave) ---
$$1 WebtoB1 (wsadm):
이 상태에서 config, st, suspend 등의 명령들을 사용할 수 있다.
1.5.6 See Also
wscfl, wsboot, wsdown, WebtoB Administration Guide
1.6 wsboot 1.6.1 Name
wsboot : WebtoB 시스템을 기동시키는 명령어
1.6.2 Synopsis
Wsboot [ -S 서버이름 ] [ -T ] [ -A ]
[ -f 이진 WebtoB 환경파일 이름 ] [ -g 서버 그룹 이름 ]
[ -n 노드 이름 ] [ -s 서버 이름 [-k 개수] ]
1.6.3 Description
wsboot 는 WebtoB 시스템의 전체나 또는 일부분을 실행시키는 명령어이다.
wsboot 는 WebtoB 환경파일을 바탕으로 시스템을 실행시키기 때문에, 기본적으로 -f 옵션을 사용하여 참조할 이진 WebtoB 환경파일(예를
WebtoB Reference Manual WebtoB
TmaxSoft 23
들어 sample.m 이라는 환경파일을 wscfl 로 컴파일한 결과물: wsconfig, wscfl 참조)을 경로와 함께 지정하여야 한다.
-f 옵션이 생략될 경우, Default 로 WEBTOBDIR 디렉토리 하위의 config 디렉토리에서 ‘wsconfig’ 파일을 참조한다. 이때 ‘wsconfig’파일이 존재하지 않으면 에러 메시지를 출력한다.
wsboot 가 옵션 없이 실행되거나 –f 옵션만이 사용되면, 모든 WebtoB 관리 프로세스들과 WebtoB 환경파일의 SERVER 절에 등록된 모든 서버 프로세스들을 실행시킨다. 먼저, NODE 절에 등록된 모든 노드에서 WebtoB 관리 프로세스들인 WSM, HTL, HTH 프로세스가 차례대로 실행된다. WebtoB 관리 프로세스들이 생성된 후에는 SERVER 절의 모든 응용 서버 프로세스들이 실행된다. wsboot 는 실행된 서버 프로세스의 초기화를 실행한 후에 다음 서버 프로세스를 실행시킨다.
응용 서버 프로세스들은 SERVER 절에 등록된 순서대로 실행된다. 모든 서버 프로세스들이 모두 초기화를 끝마칠 때까지 다음 프로세스가 실행되지 않는다. wsboot 는 각 응용 서버 프로세스들을 그들의 MinProc 항목에 정의된 개수(MinProc 항목이 정의되지 않은 경우 default 는 1 개)만큼 실행시킨다.
wsboot 는 SERVER 절의 서버들에 대하여 그들의 MinProc, MaxProc 항목 값들을 사용한다.
즉, 이들은 서버 프로세스 실행시에 wsboot 에 의해 사용되는 서버의 boot parameter 이며, 서버의 나머지 항목들은 서버가 실행된 후 시스템에 의해 실행되는 runtime parameter 이다(WebtoB Administration Guide Appendix 의 SERVER 절 참조).
모든 응용 서버 프로세스들은 그들이 동작하는 노드에 정의된 APPDIR 디렉토리에서 실행된다.
[ -T ] : WebtoB 관리 프로세스들( wsm, htl, hth) 만을 기동시킨다.
[ -f 이진 WebtoB 환경파일 이름 ] : WebtoB 시스템은 WebtoB 환경파일을 토대로 실행된다. 따라서 참조할 이진 WebtoB 환경파일명을 지정해 주어야 한다. 만약 파일명을 지정하지 않으면 WEBTOBDIR 디렉토리 하위의 config 디렉토리에서 ‘wsconfig’ 파일을 참조한다.
WebtoB WebtoB Reference Manual
TmaxSoft 24
[ -n 노드 이름 ] : Multi node 환경에서 지정된 노드의 WebtoB 를 기동시킨다. (Multi node 에 관해서는 WebtoB Administration Guide 를 참조)
여기에 사용되는 노드명은 WebtoB 환경파일내의 NODE 절에 미리 등록되어 있어야 한다.
[ -S 서버이름] : 지정된 서버에 존재하는 서버프로세스들을 MinProc 개수만큼 기동시킨다.
[ -g 서버그룹이름 ] : 지정된 서버 그룹에 존재하는 서버 프로세스 들을 기동시킨다. 사용되는 서버 그룹명은 WebtoB 환경파일내의 SVRGROUP 절에 미리 정의되어 있어야 한다.
[ -A ] : WebtoB 환경파일 내의 SERVER 절에 정의된 모든 서버프로세스들을 기동시킨다.
[ -s 서버 이름 [-k 개수] ] : 지정된 서버 프로세스만을 기동시킨다. 사용되는 서버 프로세스 이름은 WebtoB 환경파일 내의 SERVER 절에 미리 정의되어 있어야만 한다. -k 옵션을 함께 사용하여 서버 프로세스 개수를 지정할 수 있다. 서버 프로세스 개수는 현재 기동되어 있는 개수를 포함하여 SERVER 절의 MaxProc 항목에 정의된 개수를 넘어서는 안된다. -k 옵션을 생략하면 해당 서버 프로세스는 하나만 기동된다.
1.6.4 Environment
wsboot 는 WebtoB 시스템이 설치된 운영 시스템 환경에서 사용할 수 있다.
1.6.5 Example
$ wsboot
WEBTOBDIR 디렉토리 하위의 config 디렉토리에 있는 ‘wsconfig’ 파일을 참조하여 WebtoB 관리프로세스와 서비스 서버 프로세스들을 모두 기동시킨다.
$ wsboot -T -f wsconfig2
‘wsconfig2’ 환경파일을 참조하여 WebtoB 관리프로세스들 만을 기동시킨다.
$ wsboot -S svr1
WebtoB Reference Manual WebtoB
TmaxSoft 25
‘wsconfig’ 환경파일을 참조하여 svr1 프로세스를 MinProc 개수만큼 기동시킨다.
$ wsboot -n www -f /user1/webtob/config/exconfig
Multi node 환경에서 ‘/user1/webtob/config’디렉토리의 ‘exconfig’ 환경파일을 참조하여, NODE 절에 등록된 ‘www’노드의 WebtoB 를 기동시킨다.
$ wsboot -s svr1 -k 5 -f wsconfig2
‘wsconfig2’ 환경파일을 참조하여 svr1 프로세스를 5 개 기동시킨다.
1.6.6 See Also
wsdown, wscfl ,WebtoB Administration Guide
1.7 wsdown 1.7.1 Name
wsdown : WebtoB 시스템을 종료시키는 프로그램
1.7.2 Synopsis
Wsdown [ -A ] [ -S 서버이름 ] [ -g 서버 그룹 이름 ] [ -i ]
[ -n 노드 이름 [-f 이진 WebtoB 환경파일 이름] ] [ -p 서버번호 ]
[ -s 서버이름 ]
1.7.3 Description
wsdown 은 WebtoB 시스템 전체나 또는 일부분을 종료시키는 명령어이다. wsdown 은 WebtoB 환경파일을 바탕으로 하여 WebtoB 시스템을 종료시킨다. wsdown 은 WebtoB 의 모든 관리 프로세스들과 WebtoB 환경파일의 SERVER 절에 등록된 모든 서버 프로세스들을 종료시킨다. 그리고 WebtoB 시스템과 관련된 IPC 자원들을 제거한다. SERVER 절에 등록된 응용 서버 프로세스들이 가장 먼저 종료되고, WebtoB 관리 프로세스들이 종료된다. 그 순서는 htl, hth, wsm 이다. 응용 서버 프로세스들은 WebtoB 환경파일의 SERVER 절에 등록된 역순으로 종료된다.
[ -A ] : 모든 서비스 서버프로세스들을 종료시킨다.
[ -S 서버 이름 ] : 지정된 서버 프로세스 전체를 종료시킨다. 즉 지정된 서버 프로세스가 1 개 이상 실행 되었어도 전체를 종료시킨다.
WebtoB WebtoB Reference Manual
TmaxSoft 26
[ -g 서버그룹이름 ] : 지정된 서버 그룹의 모든 서버 프로세스들을 종료시킨다. 사용되는 서버 그룹명은 WebtoB 환경파일의 SVRGROUP 절에 정의되어 있어야 한다.
[ -i ] : wsdown 명령을 즉시 수행한다. 기본적으로 wsdown 명령은 해당 업무를 모두 종료하고 수행되지만 i(immediately) 옵션에 의한 종료는 현재 수행중인 업무를 무조건 중단하기 때문에 신중하게 사용해야 한다.
[ -n 노드 이름 [-f 이진 WebtoB 환경파일 이름] ] : Multi node 환경에서 지정된 노드의 WebtoB 를 종료시킨다. 여기에 사용되는 노드명은 WebtoB 환경파일의 NODE 절에 미리 정의되어 있어야 한다.
[ -p 서버번호 ] : 지정된 서버프로세스를 종료시킨다. -s 옵션에 의한 종료와 달리 wsadmin 에서 “st –p” 명령으로 확인할 수 있는 프로세스 번호(spr_no)를 사용하여 특정 프로세스를 종료시킨다.
[ -s 서버이름 ] : 지정된 서버 프로세스 하나만 종료시킨다. 사용되는 서버 프로세스 이름은 WebtoB 환경파일 내의 SERVER 절에 미리 등록되어 있어야 한다.
1.7.4 Environment
wsdown 는 WebtoB 시스템이 설치된 운영 시스템 환경에서 사용할 수 있다.
1.7.5 Example
$ wsdown
WEBTOBDIR 디렉토리 하위의 config 디렉토리에 있는 ‘wsconfig’파일을 참조하여 전체 WebtoB 시스템, 즉 WebtoB 관리 프로세스와 응용 서버 프로세스들을 모두 종료한다.
$ wsdown -S svr1
‘wsconfig’ 환경파일을 참조하여 svr1 의 모든 응용 서버 프로세스들을 종료한다.
$ wsdown –n www –f /user1/webtob/config/exconfig
Multi node 환경에서 ‘/user1/webtob/config’디렉토리의 ‘exconfig’ 환경파일을 참조하여, NODE 절에 등록된 ‘www’노드의 WebtoB 를 기동시킨다.
$ wsdown -s svr1 -f wsconfig2
WebtoB Reference Manual WebtoB
TmaxSoft 27
‘wsconfig2’ 환경파일을 참조하여 동작 중인 svr1 프로세스 하나만 종료한다.
1.7.6 See Also
wsdown, wscfl, WebtoB Administration Guide
WebtoB WebtoB Reference Manual
TmaxSoft 28
2 함 수
2.1 INIT/DONE API 2.1.1 wbSvrInit
2.1.1.1 Name
wbSvrInit : 서버를 초기화한다.
2.1.1.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
int wbSvrInit(int argc, char *argv[])
2.1.1.3 Description
WebtoB 시스템에서 제공하는 응용 서버 프로그램의 분리된 main 은 초기화 과정으로써 wbSvrInit()을 호출한다. 이 루틴은 프로세스가 수행되고 난 후, 아직 어떤 서비스 요청도 처리하기 전에 호출된다. 그러므로 wbSvrInit()루틴내에 트랜잭션이 정의될 수도 있다.
만약 응용 프로그램에서 wbSvrInit()루틴을 제공하지 않는다면, WebtoB 가 제공하는 Default 루틴이 대신 호출된다.
응용 프로그램별 명령어 라인 옵션(CLOPT)은 서버에게 전달되어 wbSvrInit()에서 처리될 수 있다(WebtoB Administration Guide Appendix A 의 SERVER 절 중 CLOPT 항목 참조). 옵션은 argc 와 argv 를 통해 전달된다.
만약 wbSvrInit()수행중에 에러가 발생한다면, 서버는 –1 을 return 하면서 종료한다. 그리고 어떤 서비스 요청도 받지 않는다.
2.1.1.4 Return Value
wbSvrInit()은 WBAPI 서버의 초기화 과정을 정의하는 함수로써 초기화 과정을 모두 완료한 후 명시적으로 0 이상의 값을 return 해 주어야 한다. 만일 반환되는 값이 음수일 경우 서버는 svrinit fail 을 발생하면서 종료된다.
WebtoB Reference Manual WebtoB
TmaxSoft 29
2.1.1.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wbsvrinit.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = "7654"
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wbsvrinit SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = wbsvrinit
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경화일을 compile 한다.
$wscfl –I wbsvrinit.m
② Service table 을 생성한다.
$wsgst
WebtoB WebtoB Reference Manual
TmaxSoft 30
Source
요청을 처리하는 WBAPI 프로그램(wbsvrinit.c)
#include <stdio.h>
#include <usrinc/atmi.h>
#include <usrinc/wbapi.h>
wbSvrInit(int argc, char *argv[]){
fprintf(stdout, "SERVER Start!\n");
return 0;
}
wbSvrDone(){
fprintf(stdout, "SVR DONE!\n");
}
test(WBSVCINFO *rqst)
{
wbPrint(rqst,"<HTML>\n");
wbPrint(rqst,"<HEAD> <TITLE> wbSvrInit test </TITLE>
<HEAD>\n\n");
wbPrint(rqst,"<BODY>\n");
wbPrint(rqst,"<H2>wbSvrInit test");
wbPrint(rqst,"</BODY>\n");
wbPrint(rqst,"</HTML>\n");
wbreturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을, Makefile 파일을 이용하여 compile 한다.
(참조 부록 3 Makefile)
$compile c wbsvrinit
Result
$ wsboot
WSBOOT for node(tmaxh1) is starting:
Welcome to WebtoB demo system: it will expire 2001/12/31
Today: 2001/10/29
WSBOOT: WSM is starting: Mon Oct 29 21:15:33 2001
WebtoB Reference Manual WebtoB
TmaxSoft 31
WSBOOT: HTL is starting: Mon Oct 29 21:15:33 2001
WSBOOT: HTH is starting: Mon Oct 29 21:15:33 2001
Current WebtoB Configuration:
Number of client handler(HTH) = 1
Supported maximum user per node = 2025
Supported maximum user per handler = 2025
WSBOOT: SVR(htmls) is starting: Mon Oct 29 21:15:33 2001
WSBOOT: SVR(wbsvrinit) is starting: Mon Oct 29 21:15:33
2001
$ SERVER Start!
Web server booting 시에 wbsvrinit()에서 작성한 것 처럼 “SERVER Start!”라는 문자열이 표준 출력장치로 출력된다.
2.1.1.6 See Also
wbSvrDone()
WebtoB Administration Guide
2.1.2 wbSvrDone
2.1.2.1 Name
wbSvrDone :서버 종료시 수행될 작업을 수행한다.
2.1.2.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
int wbSvrDone(void)
2.1.2.3 Description
WebtoB 시스템에서 제공하는 응용 서버 프로그램의 분리된 main 은 서비스 요청 처리를 모두 마치고 프로세스를 종료하기 전에 wbSvrDone()을 호출한다.
이 루틴이 실행될 때, 그 서버 프로세스는 여전히 시스템의 일부이기는 하지만 서비스는 지원하지 않는다. 그러므로, wbSvrDone() 루틴 내에서 트랜잭션이 정의될 수도 있다. 만약 wbSvrDone()이 대화형 연결을 유지하고 있다거나, 비동기성 응답을 여전히 기다리고 있다거나, 또는 트랜잭션 모드에 있는 동안에 return 한다면, WebtoB 는 대화형 연결을 종료하고 기다리고 있던 비동기성 응답들을 무시하며
WebtoB WebtoB Reference Manual
TmaxSoft 32
트랜잭션을 중지할 것이다. 그리고 그 서버 프로세스는 바로 종료하게 된다.
만약 응용 프로그램에서 wbSvrDone()루틴을 제공하지 않는다면, WebtoB 가 제공하는 Default 루틴이 대신 호출된다.
2.1.2.4 Return Value
wbSvrDone()은 개발자가 서버 프로세스의 종료를 수행하기 전에 필요한 작업을 수행하도록 작성하는 함수로 return 값에 상관없이 정상 수행된다.
2.1.2.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wbsvrdone.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wbsvrdone SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = wbsvrdone
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
WebtoB Reference Manual WebtoB
TmaxSoft 33
① 환경 파일을 compile 한다.
$wscfl –i wbsvrdone.m
② Service table 을 생성한다.
$wsgst
Source
요청을 처리하는 wbapi 프로그램(wbsvrdone.c)
#include <stdio.h>
#include <usrinc/atmi.h>
#include <usrinc/wbapi.h>
wbSvrInit(int argc, char *argv[]){
fprintf(stdout, "SERVER Start!\n");
}
wbSvrDone(){
fprintf(stdout, "SVR DONE!\n");
}
test1(WBSVCINFO *rqst)
{
wbPrint(rqst,"<HTML>\n");
wbPrint(rqst,"<HEAD> <TITLE> wbSvrInit test </TITLE>
<HEAD>\n\n");
wbPrint(rqst,"<BODY>\n");
wbPrint(rqst,"<H2>wbSvrdone test");
wbPrint(rqst,"</BODY>\n");
wbPrint(rqst,"</HTML>\n");
wbreturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wbsvrdone
2.1.2.6 Result
$ wsdown
Do you really want to down whole Webtob? (y : n): y
WebtoB WebtoB Reference Manual
TmaxSoft 34
WSDOWN for node(tmaxh1) is starting:
SVR DONE!
WSDOWN: SERVER(wbsvrinit:2) downed: Tue Oct 30 09:56:12
2001
WSDOWN: SERVER(html:0) downed: Tue Oct 30 09:56:12 2001
WSDOWN: HTL downed: Tue Oct 30 09:56:12 2001
WSDOWN: HTH downed: Tue Oct 30 09:56:12 2001
WSDOWN: WSM downed: Tue Oct 30 09:56:12 2001
WSDOWN: WEBTOB is down
Web server booting 시에 wbSvrDone()에서 작성한 것 처럼 “SVR DONE”라는 문자열이 표준 출력장치로 출력된다.
2.1.2.7 See Also
wbSvrInit()
WebtoB Administration Guide
2.2 ALLOC API 2.2.1 wbMalloc
2.2.1.1 Name
wbMalloc : 사용자가 설정한 size 만큼의 메모리를 할당한다.
2.2.1.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
void *wbMalloc(WBSVCINFO *rqst, int size)
2.2.1.3 Description
wbMalloc()함수는 사용자가 설정한 size 만큼 메모리의 크기를 설정하여 할당한다. 이때 설정한 size 만큼의 메모리를 할당할 수 없을 경우에는 NULL 포인터를 return 한다. 따라서 이 함수에 의해 할당된 크기의 메모리를 사용하기 위해서는 return 값이 NULL 이 아니라는 것을 확인하는 것이 중요하다.
인수 size 는 할당하고자 하는 메모리의 크기이다.
wbMalloc()함수로 할당된 메모리는 wbFree()함수를 이용하여 제거(free)시키도록 되어 있으나 wbMalloc()함수를 이용하여 할당된
WebtoB Reference Manual WebtoB
TmaxSoft 35
메모리를 반드시 wbFree()함수로 제거(free)시켜야 하는 것은 아니다. wbMalloc()함수로 할당된 메모리는 wbReturn()함수가 호출될 때 자동으로 제거(free)되므로 많은 양의 메모리를 할당하여 서비스 도중에 메모리를 제거(free)해야 하는 경우가 아니라면 wbReturn()함수를 이용하여 메모리를 자동으로 제거(free)할 것을 권한다.
2.2.1.4 Return Value
할당된 메모리에 대한 포인터를 return 한다. 이때 return 되는 포인터는 할당된 메모리의 첫번째 바이트에 대한 포인터이다.
만일 요구한 size 만큼의 메모리를 할당할 수 없을 경우에는 NULL 포인터를 return 한다.
2.2.1.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wbmalloc.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wbmalloc SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = wbmalloc
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
WebtoB WebtoB Reference Manual
TmaxSoft 36
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i wbmalloc.m
② Service table 을 생성한다.
$wsgst
Source
요청을 처리하는 WBAPI 프로그램(wbmalloc.c)
#include <stdio.h>
#include <usrinc/atmi.h>
#include <usrinc/wbapi.h>
test(WBSVCINFO *rqst) {
char *mem = NULL;
mem = wbMalloc(rqst, 128);
if(mem == NULL)
{
wbPrint(rqst, "<HTML>\n");
wbPrint(rqst, "<BODY>\n");
wbPrint(rqst, "wbMalloc error");
wbPrint(rqst, "</BODY></HTML>");
wbReturn(rqst, WBERROR);
}
strcpy(mem, "Hello, Tmax Soft");
wbPrint(rqst, "<HTML>\n");
wbPrint(rqst, "<HEAD><TITLE>wbMalloc Test</TITLE>
</HEAD>\n");
wbPrint(rqst, "<BODY>\n");
wbPrint(rqst, "<H1>wbMalloc Test</H1>\n");
wbPrint(rqst, "%s", mem);
wbPrint(rqst, "</BODY>\n");
wbPrint(rqst, "</HTML>\n");
wbReturn(rqst, WBSUCCESS);
}
WebtoB Reference Manual WebtoB
TmaxSoft 37
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wbmalloc
Result
Browser 로 요청을 처리하는 wbapi service test 호출
2.2.1.6 See Also
wbFree()
2.2.2 wbFree
2.2.2.1 Name
wbFree : wbMalloc()에 의해 할당된 메모리를 제거(free)한다.
2.2.2.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
int wbFree(WBSVCINFO *rqst, void *ptr)
2.2.2.3 Description
wbFree()는 wbMalloc()함수에 의해 할당된 메모리를 제거하기 위한 함수이다. 인수 ptr 은 이전에 wbMalloc()에 의해 얻어진 메모리에 대한 포인터이다. 이때 wbMalloc()함수에 의해 얻어지지 않은 유효하지 않은 포인터를 사용하여 wbFree()함수를 호출하거나 이미 제거된 메모리 포인터에 대해 다시 한번 wbFree()함수를 호출하면 에러를 발생시킨다.
WebtoB WebtoB Reference Manual
TmaxSoft 38
2.2.2.4 Return Value
정상적으로 수행될 경우 wbFree()은 1 을 return 한다. 에러 발생시에는 –1 을 return 한다.
2.2.2.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wbfree.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wbfree SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = wbfree
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$ wscfl –i wbfree.m
② Service table 을 생성한다.
$ wsgst
WebtoB Reference Manual WebtoB
TmaxSoft 39
Source
요청을 처리하는 WBAPI 프로그램(wbfree.c)
#include <stdio.h>
#include <usrinc/atmi.h>
#include <usrinc/wbapi.h>
test(WBSVCINFO *rqst)
{
char *mem = NULL;
int rnt;
mem = wbMalloc(rqst, 128);
if(mem == NULL)
{
wbPrint(rqst, "<HTML>\n");
wbPrint(rqst, "<BODY>\n");
wbPrint(rqst, "wbMalloc error");
wbPrint(rqst, "</BODY></HTML>");
wbReturn(rqst, WBERROR);
}
strcpy(mem, "Hello, Tmax Soft");
wbPrint(rqst, "<HTML>\n");
wbPrint(rqst, "<HEAD><TITLE>wbFree Test</TITLE>
</HEAD>\n");
wbPrint(rqst, "<BODY>\n");
wbPrint(rqst, "<H1>wbFree Test</H1>\n");
wbPrint(rqst, "%s", mem);
rnt = wbFree(rqst, mem);
if(rnt == -1)
wbPrint(rqst, "<br>wbFree() is failed<br>");
wbPrint(rqst, "<br>wbFree() is successful<br>");
wbPrint(rqst, "</BODY>\n");
wbPrint(rqst, "</HTML>\n");
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wbfree
WebtoB WebtoB Reference Manual
TmaxSoft 40
Result
Browser 로 요청을 처리하는 wbapi service test 호출
2.2.2.6 See Also
wbMalloc()
2.3 GET API 2.3.1 wbGetAuthType
2.3.1.1 Name
wbGetAuthType : Client 의 인증방식을 return 한다.
2.3.1.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
char *wbGetAuthType(WBSVCINFO *rqst)
2.3.1.3 Description
wbGetAuthType()은 Client 의 인증 방식을 알아내는 함수로 CGI 환경변수 “AUTH_TYPE”에 해당하는 정보를 return 한다. 즉, wbGetAuthType()함수는 Client 가 인증 방식을 확인하고자 하는 경우에 유용하게 사용할 수 있다. wbGetAuthType()은 인증 타입을 return 하며 만약 인증 방식을 사용하지 않고 있다면 NULL 을 return 한다.
현재 WebtoB 에서 사용 가능한 인증 방식은 Basic 이다.
WebtoB Reference Manual WebtoB
TmaxSoft 41
wbGetAuthType()함수와 아래 “See Also”에 설정된 함수들과 같이 사용할 때 이 함수들은 버퍼를 같이 사용하게 되므로 return 된 값을 String Copy 를 하지 않으면 마지막에 return 된 값이 출력된다. 그러므로 String Copy 를 이용할 것을 권한다.
2.3.1.4 Return Value
인증을 사용하는 경우에 그 인증 타입을 return 한다. 그러나 인증을 사용하지 않을 경우에는 NULL 을 return 한다.
2.3.1.5 Example
① wsmkpw 를 이용하여 id 와 password 를 저장한 파일을 생성한다.
$wsmkpw –p haninho haninho pwfile
Config-file : wbapi 를 실행하기 위한 환경 파일(wbauth.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
HostName = "tmaxh1",
PORT = "7654"
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD, AuthentName =
authent1
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc = 2
wbauth SVGNAME = webapg, MinProc = 1, MaxProc = 2
*SERVICE
test SVRNAME = wbauth
*URI
wbapi Uri="/svct/", Svrtype = WEBSTD
WebtoB WebtoB Reference Manual
TmaxSoft 42
*AUTHENT
authent1 Type = Basic, UserFile =
"/user2/haninho/webtob/pwfile"
*EXT
htm MimeType = "text/html", SvrType = HTML
② 환경 파일을 compile 한다.
$ wscfl –i wbauth.m
③ Service table 을 생성한다.
$ wsgst
Source
요청을 처리는 wbapi 프로그램(wbauth.c)
#include <stdio.h>
#include <usrinc/wbapi.h>
#include <usrinc/atmi.h>
test(WBSVCINFO *rqst) {
char *auth_type;
auth_type = wbGetAuthType(rqst);
wbPrint(rqst, "<HTML><BODY>");
if(auth_type==NULL)
{
wbPrint(rqst, "<H1>Not used Authentication</H1>");
}
else
{
wbPrint(rqst, "<H1>AuthType : %s</H1>", auth_type);
}
wbPrint(rqst, "</BODY></HTML>");
wbReturn(rqst, WBSUCCESS);
}
Makefile
④ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wbauth
WebtoB Reference Manual WebtoB
TmaxSoft 43
Result
인증 타입을 구별하는 wbapi 인증 타입을 사용하지 않았기 때문에 다음과 같은 결과가 나온다.
2.3.1.6 See Also
wbGetContentLength(), wbGetDocumentRoot(), wbGetMethod(),
wbGetParsedURI(), wbGetPathInfo(), wbGetPathTranslated(),
wbGetProtocol(), wbGetQueryString(), wbGetRemoteAddr(),
wbGetRemoteHost(), wbGetRemoteIdent(), wbGetRemoteUser(),
wbGetRequestURI(), wbGetScheme(), wbGetScriptFilename(),
wbGetScriptName(), wbGetServerName(), wbGetServerPort(),
wbGetServerSoftware(), wbGetTranslatedURI()
2.3.2 wbGetContentLength
2.3.2.1 Name
wbGetContentLength : Client 가 보낸 Content 의 크기를 return 한다.
2.3.2.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
char *wbGetContentLength(WBSVCINFO *rqst)
WebtoB WebtoB Reference Manual
TmaxSoft 44
2.3.2.3 Description
wbGetContentLength()는 CGI 환경변수 “CONTENT_LENGTH”에 해당하는 정보를 얻어내는데 사용되는 함수이다.
wbGetContentLength()함수와 아래 “See Also”에 설정된 함수들과 같이 사용할 때 이 함수들은 버퍼를 같이 사용하게 되므로 return 된 값을 String Copy 를 하지 않으면 마지막에 return 된 값이 출력된다. 그러므로 String Copy 를 이용할 것을 권한다.
2.3.2.4 Return Value
Client 가 보낸 Content 의 크기를 return 한다.
2.3.2.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wbcontent.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wbcontent SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = wbcontent
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
WebtoB Reference Manual WebtoB
TmaxSoft 45
① 환경화일을 compile 한다.
$ wscfl –I wbcontent.m
② Service table 을 생성한다.
$ wsgst
Source
요청을 보내는 html 파일(wbcontent.html)
<html>
<head><title>CONTENT LENGTH</title></head>
<body>
<form method=post action="/svct/test">
<table width=370>
<br>
<tr>
<td> input name</td>
<td><input type=input name=name></td>
<td><input type=submit value="submit"></td>
</tr>
</table>
</form>
</body>
</html>
요청을 처리해 주는 wbapi 프로그램(wbcontent.c)
#include <stdio.h>
#include <usrinc/wbapi.h>
#include <usrinc/atmi.h>
test(WBSVCINFO *rqst)
{
char *content_length;
content_length = wbGetContentLength(rqst);
wbPrint(rqst, "<HTML><BODY>");
if( content_length != NULL)
{
wbPrint(rqst, "<H1>CONTENT_LENGTH : %s</H1>", content_length);
}
else
WebtoB WebtoB Reference Manual
TmaxSoft 46
{
wbPrint(rqst, "<H1>CONTENT IS NULL</H1>");
}
wbPrint(rqst, "</Body></html>");
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wbcontent
Result
요청을 보내는 html
Browser 로 WBAPI service 를 호출하면 다음과 같은 결과가 나온다.
WebtoB Reference Manual WebtoB
TmaxSoft 47
2.3.2.6 See Also
wbGetAuthType(), wbGetDocumentRoot(), wbGetMethod(),
wbGetParsedURI(), wbGetPathInfo(), wbGetPathTranslated(), wbGetProtocol(),
wbGetQueryString(), wbGetRemoteAddr(), wbGetRemoteHost(),
wbGetRemoteIdent(), wbGetRemoteUser(), wbGetRequestURI(),
wbGetScheme(), wbGetScriptFilename(), wbGetScriptName(),
wbGetServerName(), wbGetServerPort(), wbGetServerSoftware(),
wbGetTranslatedURI()
2.3.3 wbGetDocumentRoot
2.3.3.1 Name
wbGetDocumentRoot : WebtoB 의 Home 디렉토리의 값을 return 한다.
2.3.3.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
char *wbGetDocumentRoot(WBSVCINFO *rqst)
2.3.3.3 Description
wbGetDocumentRoot()는 WebtoB 의 Home 디렉토리의 값을 얻어내는데 사용된다. 이 함수의 return 값은 WebtoB 환경설정시 사용자가 NODE 절의 DocRoot 항목에 설정한 값과 동일하다.
wbGetDocumentRoot()함수와 아래 “See Also”에 설정된 함수들과 같이 사용할 때 이 함수들은 버퍼를 같이 사용하게 되므로 return 된 값을 String Copy 를 하지 않으면 마지막에 return 된 값이 출력된다. 그러므로 String Copy 를 이용할 것을 권한다.
2.3.3.4 Return Value
WebtoB 의 Home 디렉토리의 값을 return 한다.
2.3.3.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(docroot.m)
WebtoB WebtoB Reference Manual
TmaxSoft 48
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wbdocroot SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = wbdocroot
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i wbdocroot.m
② service table 을 생성한다.
$wsgst
Source : 요청을 처리해 주는 wbapi 프로그램(docroot.c)
#include <stdio.h>
#include <usrinc/wbapi.h>
#include <usrinc/atmi.h>
test(WBSVCINFO *rqst)
{
char *document_root;
WebtoB Reference Manual WebtoB
TmaxSoft 49
document_root = wbGetDocumentRoot(rqst);
wbPutHdr(rqst, "Content-type", "text/html");
wbPrint(rqst, "<HTML><BODY>");
wbPrint(rqst, "<H1>DocumentRoot : %s</H1>", document_root);
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wbdocroot
Result
Browser 로 WBAPI service 를 호출하면 다음과 같은 결과가 나온다.
2.3.3.6 See Also
wbGetAuthType(), wbGetContentLength(), wbGetMethod(), wbGetParsedURI(),
wbGetPathInfo(), wbGetPathTranslated(), wbGetProtocol(),
wbGetQueryString(), wbGetRemoteAddr(), wbGetRemoteHost(),
wbGetRemoteIdent(), wbGetRemoteUser(), wbGetRequestURI(),
wbGetScheme(), wbGetScriptFilename(), wbGetScriptName(),
wbGetServerName(), wbGetServerPort(), wbGetServerSoftware(),
wbGetTranslatedURI()
2.3.4 wbGetMethod
2.3.4.1 Name
wbGetMethod : HTTP Method 값을 return 한다.
WebtoB WebtoB Reference Manual
TmaxSoft 50
2.3.4.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
char *wbGetMethod(WBSVCINFO *rqst)
2.3.4.3 Description
Client 가 서버에 Request 를 보내는 경우에 HTTP Method 를 통해서 모든 요구가 이루어 진다. 만약 Client 가 일반적인 HTML Page 를 요청하는 경우 보통 GET Method 를 이용할 것이다. 이 GET Method 를 통해서 CGI 등을 처리하는 것도 충분히 가능하다. 실제로 이런 방식으로 서버에 Data 를 보내는 경우도 많다. 하지만, 이 GET 방식을 이용할 경우, Browser 의 주소창에 Client 가 보내는 Data 가 모두 명시된다. 이는 사용자가 판독하기도 어렵거니와, 너무 복잡하게 처리되어 그리 권할 만한 것이 아니다. 또한 ID 나 Password 가 GET 방식으로 보내지는 경우 Browser 의 주소창에 Data 가 명시됨에 따라 ID 와 Password 가 타인에게 노출될 문제가 발생할 수 있다. 따라서 보통 POST 방법을 이용하여 Data 를 Data Field 에 넣어서 보내는 것이다. 이러한 다양한 Method 들이 들어오는 경우 이를 WBAPI 프로그램에서 Method 방식을 알아야 할 필요가 있다. 이때 Method 를 알아내기 위해 wbGetMethod()함수를 이용한다.
wbGetMethod()는 실제 사용자가 요구한 Method 를 String 형태로 출력한다. wbGetMethod()함수와 아래 “See Also”에 설정된 함수들과 같이 사용할 때 이 함수들은 버퍼를 같이 사용하게 되므로 return 된 값을 String Copy 를 하지 않으면 마지막에 return 된 값이 출력된다. 그러므로 String Copy 를 이용할 것을 권한다.
2.3.4.4 Return Value
해당하는 Method 를 string 형태로 return 한다.
[GET]
Client 가 Request 를 보낸 HTTP Method 는 GET Method 이다.
[POST]
Client 가 Request 를 보낸 HTTP Method 는 POST Method 이다.
[PUT]
Client 가 Request 를 보낸 HTTP Method 는 PUT Method 이다.
WebtoB Reference Manual WebtoB
TmaxSoft 51
[HEAD]
Client 가 Request 를 보낸 HTTP Method 는 HEAD Method 이다.
[DELETE]
Client 가 Request 를 보낸 HTTP Method 는 DELETE Method 이다.
[CONNECT]
Client 가 Request 를 보낸 HTTP Method 는 CONNECT Method 이다.
[OPTIONS]
Client 가 Request 를 보낸 HTTP Method 는 OPTIONS Method 이다.
[TRACE]
Client 가 Request 를 보낸 HTTP Method 는 TRACE Method 이다.
2.3.4.5 Error
다음 상황에서 wbGetMethod()는 오류값을 return 한다.
[INVALID]
인수가 유효하지 않다. wbapi.h 에서 정의되지 않은 Method 이다.
2.3.4.6 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wbmethod.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
WebtoB WebtoB Reference Manual
TmaxSoft 52
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wbmethod SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = wbmethod
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i wbmethod.m
② service table 을 생성한다.
$wsgst
Source
요청을 보내는 html 파일(wbmethod.html)
<html>
<head><title>WBGETMETHOD</title></head>
<body>
<form method=post action="/svct/test">
<table width=370>
<br>
<tr>
<td> input name</td>
<td><input type=input name=name></td>
<td><input type=submit value="submit"></td>
</tr>
</table>
</form>
</body>
</html>
요청을 처리해 주는 wbapi 프로그램(wbmethod.c)
WebtoB Reference Manual WebtoB
TmaxSoft 53
#include <stdio.h>
#include <usrinc/wbapi.h>
#include <usrinc/atmi.h>
test(WBSVCINFO *rqst)
{
char *method_name;
method_name = wbGetMethod(rqst);
wbPutHdr(rqst, "Content-type", "text/html");
wbPrint(rqst, "<HTML><BODY>");
if( method_name != NULL) {
wbPrint(rqst, "<H1>method name : %s</H1>", method_name);
}
else {
wbPrint(rqst, "<H1>method name is null</H1>");
}
wbPrint(rqst, "</body></html>");
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wbmethod
Result
요청을 보내는 html
Browser 로 WBAPI service 를 호출하면 다음과 같은 결과가 나온다.
WebtoB WebtoB Reference Manual
TmaxSoft 54
2.3.4.7 See Also
wbGetAuthType(), wbGetContentLength(), wbGetDocumentRoot(), wbGetParsedURI(), wbGetPathInfo(), wbGetPathTranslated(), wbGetProtocol(), wbGetQueryString(), wbGetRemoteAddr(), wbGetRemoteHost(), wbGetRemoteIdent(), wbGetRemoteUser(), wbGetRequestURI(), wbGetScheme(), wbGetScriptFilename(), wbGetScriptName(), wbGetServerName(), wbGetServerPort(), wbGetServerSoftware(), wbGetTranslatedURI()
2.3.5 wbGetParsedURI
2.3.5.1 Name
wbGetParsedURI : Client 로부터 Request 가 들어온 URI 정보를 return 한다.
2.3.5.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
char *wbGetParsedURI(WBSVCINFO *rqst)
2.3.5.3 Description
wbGetParsedURI()는 Client 로부터 Request 가 들어온 URI 정보를 얻어내는데 사용되는 함수이다. wbGetParsedURI()함수는 wbGetScriptName()함수와 wbGetPathInfo()함수로 얻어낼 수 있는 모든 정보를 return,한다.
예를 들어 Client 가 주소창에 “http://tmax.co.kr/enc.cgi/a/b”라고 입력한다면 wbGetParsedURI()는 부가 경로 정보인 “/enc.cgi/a/b”를 return 한다. 만약 어떠한 정보도 없다면 NULL 을 return 한다.
wbGetParsedURI()함수와 아래 “See Also”에 설정된 함수들과 같이 사용할 때 이 함수들은 버퍼를 같이 사용하게 되므로 return 된 값을
WebtoB Reference Manual WebtoB
TmaxSoft 55
String Copy 를 하지 않으면 마지막에 return 된 값이 출력된다. 그러므로 String Copy 를 이용할 것을 권한다.
2.3.5.4 Return Value
Client 로부터 Request 가 들어온 URI 정보를 return 한다.
2.3.5.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wburi.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = "7654"
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wburi SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = wburi
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i wburi.m
② service table 을 생성한다.
$wsgst
WebtoB WebtoB Reference Manual
TmaxSoft 56
Source
요청을 처리해 주는 wbapi 프로그램(wburi.c)
#include <stdio.h>
#include <usrinc/wbapi.h>
#include <usrinc/atmi.h>
test(WBSVCINFO *rqst)
{
char *parsed_uri;
parsed_uri = wbGetParsedURI(rqst);
wbPutHdr(rqst, "Content-type", "text/html");
wbPrint(rqst, "<HTML><BODY>");
wbPrint(rqst, "<H1>URI : %s</H1>", parsed_uri);
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wburi
Result
Browser 로 WBAPI service 를 호출하면 다음과 같은 결과가 나온다.
2.3.5.6 See Also
wbGetAuthType(), wbGetContentLength(), wbGetDocumentRoot(), wbGetMethod(), wbGetPathInfo(), wbGetPathTranslated(), wbGetProtocol(), wbGetQueryString(), wbGetRemoteAddr(), wbGetRemoteHost(), wbGetRemoteIdent(), wbGetRemoteUser(), wbGetRequestURI(),
WebtoB Reference Manual WebtoB
TmaxSoft 57
wbGetScheme(), wbGetScriptFilename(), wbGetScriptName(), wbGetServerName(), wbGetServerPort(), wbGetServerSoftware(), wbGetTranslatedURI()
2.3.6 wbGetPathInfo
2.3.6.1 Name
wbGetPathInfo : Request 와 관계된 상대 경로 정보를 return 한다.
2.3.6.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
char *wbGetPathInfo(WBSVCINFO *rqst)
2.3.6.3 Description
wbGetPathInfo()는 CGI 환경변수중 “PATH_INFO”에 해당하는 정보를 얻어내는 함수이다. 이 함수는 Request 와 관계된 상대 경로 정보를 return 한다. 예를 들어 Client 가 주소창에 “http://tmax.co.kr/enc.cgi/a/b”라고 입력한다면 wbGetPathInfo()는 부가 경로 정보인 “/a/b”를 return 한다. 만약 어떠한 정보도 없다면 NULL 을 return 한다.
wbGetPathInfo()함수와 아래 “See Also”에 설정된 함수들과 같이 사용할 때 이 함수들은 버퍼를 같이 사용하게 되므로 return 된 값을 String Copy 를 하지 않으면 마지막에 return 된 값이 출력된다. 그러므로 String Copy 를 이용할 것을 권한다.
2.3.6.4 Return Value
Request 와 관계된 부가의 경로 정보를 return 한다. 만약 어떠한 정보도 없다면 NULL 을 return 한다.
2.3.6.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wbpath.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
WebtoB WebtoB Reference Manual
TmaxSoft 58
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wbpath SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = wbpath
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i wbpath.m
② service table 을 생성한다.
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(wbpath.c)
#include <stdio.h>
#include <usrinc/wbapi.h>
#include <usrinc/atmi.h>
test(WBSVCINFO *rqst) {
char *path;
path = wbGetPathInfo(rqst);
wbPutHdr(rqst, "Content-type", "text/html");
wbPrint(rqst, "<HTML><BODY>");
if(path != NULL) {
wbPrint(rqst, "<H1>PATH : %s</H1>", path);
WebtoB Reference Manual WebtoB
TmaxSoft 59
}
else {
wbPrint(rqst, "<H1>PATH is null</H1>");
}
wbPrint(rqst, "</body></html>");
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wbpath
Result
Browser 로 WBAPI service 를 호출하면 다음과 같은 결과가 나온다.
Browser 로 http://61.77.153.5:7654/svct/test/a/b 와 같이 WBAPI service 를 호출하면 다음과 같은 결과가 나온다.
WebtoB WebtoB Reference Manual
TmaxSoft 60
2.3.6.6 See Also
wbGetAuthType(), wbGetContentLength(), wbGetDocumentRoot(), wbGetMethod(), wbGetParsedURI(), wbGetPathTranslated(), wbGetProtocol(), wbGetQueryString(), wbGetRemoteAddr(), wbGetRemoteHost(), bGetRemoteIdent(), wbGetRemoteUser(), wbGetRequestURI(), wbGetScheme(), wbGetScriptFilename(), wbGetScriptName(), bGetServerName(), wbGetServerPort(), bGetServerSoftware(), bGetTranslatedURI()
2.3.7 wbGetPathTranslated
2.3.7.1 Name
wbGetPathTranslated : Request 와 관계된 서비스의 실제 경로를 return 한다.
2.3.7.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
char *wbGetPathTranslated(WBSVCINFO *rqst)
2.3.7.3 Description
wbGetPathTranslated()는 CGI 환경변수중 “PATH_TRANSLATED”에 해당하는 정보를 얻어내는 함수이다. 이 함수는 Request 와 관계된 서비스의 절대 경로를 return 한다.
wbGetPathTranslated()함수와 아래 “See Also”에 설정된 함수들과 같이 사용할 때 이 함수들은 버퍼를 같이 사용하게 되므로 return 된 값을 String Copy 를 하지 않으면 마지막에 return 된 값이 출력된다. 그러므로 String Copy 를 이용할 것을 권한다.
2.3.7.4 Return Value
Request 와 관계된 부가의 경로 정보를 return 한다. 만약 어떠한 정보도 없다면 NULL 을 return 한다.
2.3.7.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wbpathtrans.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
WebtoB Reference Manual WebtoB
TmaxSoft 61
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wbpathtrans SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = wbpathtrans
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i wbpathtrans.m
② service table 을 생성한다.
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(wbpathtrans.c)
#include <stdio.h>
#include <usrinc/wbapi.h>
#include <usrinc/atmi.h>
test(WBSVCINFO *rqst)
{
char *pathtrans;
pathtrans = wbGetPathTranslated(rqst);
wbPutHdr(rqst, "Content-type", "text/html");
wbPrint(rqst, "<HTML><BODY>");
WebtoB WebtoB Reference Manual
TmaxSoft 62
if(pathtrans != NULL){
wbPrint(rqst, "<H1>PATHTRANS : %s</H1>", pathtrans);
}
else {
wbPrint(rqst, "<H1>PATHTRANS is null</H1>");
}
wbPrint(rqst, "</body></html>");
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wbpathtrans
Result
Browser 로 WBAPI service 를 호출하면 다음과 같은 결과가 나온다.
Browser 로 http://61.77.153.5:7654/svct/test/a/b 와 같이 WBAPI service 를 호출하면 다음과 같은 결과가 나온다.
WebtoB Reference Manual WebtoB
TmaxSoft 63
2.3.7.6 See Also
wbGetAuthType(), wbGetContentLength(), wbGetDocumentRoot(), wbGetMethod(), wbGetParsedURI(), wbGetPathInfo(), wbGetProtocol(), wbGetQueryString(), wbGetRemoteAddr(), wbGetRemoteHost(), wbGetRemoteIdent(), wbGetRemoteUser(), wbGetRequestURI(), wbGetScheme(), wbGetScriptFilename(), wbGetScriptName(), wbGetServerName(), wbGetServerPort(), wbGetServerSoftware(), wbGetTranslatedURI()
2.3.8 wbGetProtocol
2.3.8.1 Name
wbGetProtocol : Request 와 관계된 Protocol 정보를 return 한다.
2.3.8.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
char *wbGetProtocol(WBSVCINFO *rqst)
2.3.8.3 Description
wbGetProtocol()는 CGI 환경변수중 “SERVER_PROTOCOL”에 해당하는 정보를 얻어내는 함수이다.
wbGetProtocol()함수와 아래 “See Also”에 설정된 함수들과 같이 사용할 때 이 함수들은 버퍼를 같이 사용하게 되므로 return 된 값을 String Copy 를 하지 않으면 마지막에 return 된 값이 출력된다. 그러므로 String Copy 를 이용할 것을 권한다.
2.3.8.4 Return Value
Request 와 관계된 Protocol 정보를 return 한다. 관련된 정보가 없다면 NULL 을 return 한다.
2.3.8.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wbprotocol.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
WebtoB WebtoB Reference Manual
TmaxSoft 64
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wbprotocol SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = wbprotocol
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i wbprotocol.m
② service table 을 생성한다.
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(wbprotocol.c)
#include <stdio.h>
#include <usrinc/wbapi.h>
#include <usrinc/atmi.h>
test(WBSVCINFO *rqst)
{
char *protocol;
protocol = wbGetProtocol(rqst);
wbPutHdr(rqst, "Content-type", "text/html");
wbPrint(rqst, "<HTML><BODY>");
wbPrint(rqst, "<H1>protocol : %s</H1>", protocol);
WebtoB Reference Manual WebtoB
TmaxSoft 65
wbPrint(rqst, "</body></html>");
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wbprotocol
Result
Browser 로 WBAPI service 를 호출하면 다음과 같은 결과가 나온다.
2.3.8.6 See Also
wbGetAuthType(), wbGetContentLength(), wbGetDocumentRoot(), wbGetMethod(), wbGetParsedURI(), wbGetPathInfo(), wbGetPathTranslated(), wbGetQueryString(), wbGetRemoteAddr(), wbGetRemoteHost(), wbGetRemoteIdent(), wbGetRemoteUser(), wbGetRequestURI(), wbGetScheme(), wbGetScriptFilename(), wbGetScriptName(), wbGetServerName(), wbGetServerPort(), wbGetServerSoftware(), wbGetTranslatedURI()
2.3.9 wbGetQueryString
2.3.9.1 Name
wbGetQueryString : Request URL 로부터 질의어 문자열을 return 한다.
2.3.9.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
WebtoB WebtoB Reference Manual
TmaxSoft 66
char *wbGetQueryString(WBSVCINFO *rqst)
2.3.9.3 Description
Request 의 URL 로부터 질의어 문자열을 return 한다. 이 값은 CGI 변수 “QUERY_STRING”과 동일하다.
wbGetQueryString()함수와 아래 “See Also”에 설정된 함수들과 같이 사용할 때 이 함수들은 버퍼를 같이 사용하게 되므로 return 된 값을 String Copy 를 하지 않으면 마지막에 return 된 값이 출력된다. 그러므로 String Copy 를 이용할 것을 권한다.
2.3.9.4 Return Value
Request 의 URL 로부터 질의어 문자열을 return 한다.
2.3.9.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wbquery.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wbquery SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test1 SVRNAME = wbquery
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
WebtoB Reference Manual WebtoB
TmaxSoft 67
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i wbquery.m
② service table 을 생성한다.
$wsgst
Source
요청을 보내는 html(wbquery.html)
<html>
<head><title>wbGetQueryString</title></head>
<body>
<form method=get action="/svct/test">
<table width=370>
<br>
<tr>
<td> input name</td>
<td><input type=input name=name></td>
<td><input type=submit value="submit"></td>
</tr>
</table>
</form>
</body>
</html>
요청을 처리해 주는 wbapi 프로그램(wbquery.c)
#include <stdio.h>
#include <usrinc/wbapi.h>
#include <usrinc/atmi.h>
test(WBSVCINFO *rqst)
{
char *query;
query = wbGetQueryString(rqst);
wbPutHdr(rqst, "Content-type", "text/html");
wbPrint(rqst, "<HTML><BODY>");
if(query != NULL)
{
WebtoB WebtoB Reference Manual
TmaxSoft 68
wbPrint(rqst, "<H1>QUERY : %s</H1>", query);
}
else
{
wbPrint(rqst, "<H1>QUERY is null</H1>");
}
wbPrint(rqst, "</body></html>");
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wbquery
Result
요청을 보내는 html
Browser 로 WBAPI service 를 호출하면 다음과 같은 결과가 나온다.
WebtoB Reference Manual WebtoB
TmaxSoft 69
2.3.9.6 See Also
wbGetAuthType(), wbGetContentLength(), wbGetDocumentRoot(), wbGetMethod(), wbGetParsedURI(), wbGetPathInfo(), wbGetPathTranslated(), wbGetProtocol(), wbGetRemoteAddr(), wbGetRemoteHost(), wbGetRemoteIdent(), wbGetRemoteUser(), wbGetRequestURI(), wbGetScheme(), wbGetScriptFilename(), wbGetScriptName(), wbGetServerName(), wbGetServerPort(), wbGetServerSoftware(), wbGetTranslatedURI()
2.3.10 wbGetRemoteAddr
2.3.10.1 Name
wbGetRemoteAddr : Request 한 Remote Host 의 IP 를 return 한다.
2.3.10.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
char *wbGetRemoteAddr(WBSVCINFO *rqst)
2.3.10.3 Description
wbGetRemoteAddr()은 CGI 환경변수 “REMOTE_ADDR”에 해당하는 정보를 얻어내는데 사용되는 함수이다.
wbGetRemoteAddr()함수와 아래 “See Also”에 설정된 함수들과 같이 사용할 때 이 함수들은 버퍼를 같이 사용하게 되므로 return 된 값을 String Copy 를 하지 않으면 마지막에 return 된 값이 출력된다. 그러므로 String Copy 를 이용할 것을 권한다.
2.3.10.4 Return Value
Request 를 하는 Client 의 Remote Host 의 IP 를 return 한다.
2.3.10.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wbremoteaddr.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
WebtoB WebtoB Reference Manual
TmaxSoft 70
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wbremoteaddr SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = wbremoteaddr
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i wbremoteaddr.m
② service table 을 생성한다.
$wsgst
Source
요청을 보내는 html(wbremoteaddr.html)
<html>
<head><title>wbGetRemoteAddr</title></head>
<body>
<form method=get action="/svct/test">
<table width=370>
<br>
<tr>
<td> input name</td>
<td><input type=input name=name></td>
<td><input type=submit value="submit"></td>
</tr>
WebtoB Reference Manual WebtoB
TmaxSoft 71
</table>
</form>
</body>
</html>
요청을 처리해 주는 wbapi 프로그램(wbremoteaddr.c)
#include <stdio.h>
#include <usrinc/wbapi.h>
#include <usrinc/atmi.h>
test(WBSVCINFO *rqst) {
char *addr;
addr = wbGetRemoteAddr(rqst);
wbPutHdr(rqst, "Content-type", "text/html");
wbPrint(rqst, "<HTML><BODY>");
if(addr != NULL) {
wbPrint(rqst, "REMOTE_ADDR : %s", addr);
} else {
wbPrint(rqst, "<H1>addr is null</H1>");
}
wbPrint(rqst, "</body></html>");
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wbremoteaddr
Result
요청을 보내는 html
WebtoB WebtoB Reference Manual
TmaxSoft 72
Browser 로 WBAPI service 를 호출하면 다음과 같은 결과가 나온다.
2.3.10.6 See Also
wbGetAuthType(), wbGetContentLength(), wbGetDocumentRoot(), wbGetMethod(), wbGetParsedURI(), wbGetPathInfo(), wbGetPathTranslated(), wbGetProtocol(), wbGetQueryString(), wbGetRemoteHost(), wbGetRemoteIdent(), wbGetRemoteUser(), wbGetRequestURI(), wbGetScheme(), wbGetScriptFilename(), wbGetScriptName(), wbGetServerName(), wbGetServerPort(), wbGetServerSoftware(), wbGetTranslatedURI()
2.3.11 wbGetRemoteHost
2.3.11.1 Name
wbGetRemoteHost : Request 하는 Remote Host 의 이름을 return 한다.
2.3.11.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
char *wbGetRemoteHost(WBSVCINFO *rqst)
2.3.11.3 Description
wbGetRemoteHost()은 CGI 환경변수 “REMOTE_HOST”에 해당하는 정보를 얻어내는데 사용되는 함수이다. 만약 이 정보가 Remote Host 에 존재하지 않는다면 “REMOTE_ADDR”에 해당하는 정보를 return 한다.
wbGetRemoteHost()함수와 아래 “See Also”에 설정된 함수들과 같이 사용할 때 이 함수들은 버퍼를 같이 사용하게 되므로 return 된 값을 String Copy 를 하지 않으면 마지막에 return 된 값이 출력된다. 그러므로 String Copy 를 이용할 것을 권한다.
WebtoB Reference Manual WebtoB
TmaxSoft 73
2.3.11.4 Return Value
Request 한 Remote Host 의 hostname 을 return 한다.
2.3.11.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wbremotehost.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wbremotehost SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = wbremotehost
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i wbremotehost.m
② service table 을 생성한다.
$wsgst
WebtoB WebtoB Reference Manual
TmaxSoft 74
Source
요청을 보내는 html(wbremotehost.html)
<html>
<head><title>wbGetRemoteHost</title></head>
<body>
<form method=get action="/svct/test">
<table width=370>
<br>
<tr>
<td> input name</td>
<td><input type=input name=name></td>
<td><input type=submit value="submit"></td>
</tr>
</table>
</form>
</body>
</html>
요청을 처리해 주는 wbapi 프로그램(wbremotehost.c)
#include <stdio.h>
#include <usrinc/wbapi.h>
#include <usrinc/atmi.h>
test(WBSVCINFO *rqst)
{
char *host;
host = wbGetRemoteHost(rqst);
wbPutHdr(rqst, "Content-type", "text/html");
wbPrint(rqst, "<HTML><BODY>");
if(host != NULL)
{
wbPrint(rqst, "REMOTE_HOST : %s", host);
}
else
{
wbPrint(rqst, "<H1>host is null</H1>");
}
wbPrint(rqst, "</body></html>");
wbReturn(rqst, WBSUCCESS);
}
WebtoB Reference Manual WebtoB
TmaxSoft 75
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wbremotehost
Result
요청을 보내는 html
Browser 로 WBAPI service 를 호출하면 다음과 같은 결과가 나온다.
wbGetRemoteHost()은 CGI 환경변수 “REMOTE_HOST”에 해당하는 정보를 얻어내는데 사용되는 함수이다. 예제에서는 Remote Host 에 대한 정보가 존재하지 않기 때문에 “REMOTE_ADDR”에 해당하는 정보를 return 한다.
WebtoB WebtoB Reference Manual
TmaxSoft 76
2.3.11.6 See Also
wbGetAuthType(), wbGetContentLength(), wbGetDocumentRoot(), wbGetMethod(), wbGetParsedURI(), wbGetPathInfo(), wbGetPathTranslated(), wbGetProtocol(), wbGetQueryString(), wbGetRemoteAddr(), wbGetRemoteIdent(), wbGetRemoteUser(), wbGetRequestURI(), wbGetScheme(), wbGetScriptFilename(), wbGetScriptName(), wbGetServerName(), wbGetServerPort(), wbGetServerSoftware(), wbGetTranslatedURI()
2.3.12 wbGetRemoteUser
2.3.12.1 Name
wbGetRemoteUser : Request 하는 Client 의 이름을 return 한다.
2.3.12.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
char *wbGetRemoteUser(WBSVCINFO *rqst)
2.3.12.3 Description
Request 를 하는 Client 의 이름을 retrun 한다. 만약 WebtoB 에 접근하는데 제한이 없다면 NULL 값을 return 한다. CGI 변수 REMOTE_USER 와 동일하다. 이것은 일반적으로 Client 가 HTTP 인증을 통해 로그인했다는 것을 말한다.
wbGetRemoteUser()함수와 아래 “See Also”에 설정된 함수들과 같이 사용할 때 이 함수들은 버퍼를 같이 사용하게 되므로 return 된 값을 String Copy 를 하지 않으면 마지막에 return 된 값이 출력된다. 그러므로 String Copy 를 이용할 것을 권한다.
2.3.12.4 Return Value
Request 를 하는 Client 의 이름을 retrun 한다. 만약 WebtoB 에 접근하는데 제한이 없다면 NULL 을 return 한다.
2.3.12.5 Example
① wsmkpw 를 이용하여 id 와 password 를 저장한 파일을 생성한다.
$wsmkpw –p haninho haninho pwfile
Config-file : wbapi 를 실행하기 위한 환경 파일(wbremoteuser.m)
WebtoB Reference Manual WebtoB
TmaxSoft 77
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD, Authentname =
authent1
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wbremoteuser SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = wbremoteuser
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*AUTHENT
authent1 Type = Basic, UserFile =
"/user2/haninho/webtob/pwfile"
*EXT
htm MimeType = "text/html", SvrType = HTML
② 환경 파일을 compile 한다.
$wscfl –i wbremoteuser.m
③ service table 을 생성한다.
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(wbremoteuser.c)
WebtoB WebtoB Reference Manual
TmaxSoft 78
#include <stdio.h>
#include <usrinc/wbapi.h>
#include <usrinc/atmi.h>
test(WBSVCINFO *rqst) {
char *user;
user = wbGetRemoteUser(rqst);
wbPutHdr(rqst, "Content-type", "text/html");
wbPrint(rqst, "<HTML><BODY>");
if(user != NULL) {
wbPrint(rqst, "REMOTE_USER : %s", user);
} else {
wbPrint(rqst, "<H1>user is null</H1>");
}
wbPrint(rqst, "</body></html>");
wbReturn(rqst, WBSUCCESS);
}
Makefile
④ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wbremoteuser
Result
Browser 로 WBAPI service 를 호출하면 다음과 같은 결과가 나온다.
WebtoB Reference Manual WebtoB
TmaxSoft 79
2.3.12.6 See Also
wbGetAuthType(), wbGetContentLength(), wbGetDocumentRoot(), wbGetMethod(), wbGetParsedURI(), wbGetPathInfo(), wbGetPathTranslated(), wbGetProtocol(), wbGetQueryString(), wbGetRemoteAddr(), wbGetRemoteHost(), wbGetRemoteIdent(), wbGetRequestURI(), wbGetScheme(), wbGetScriptFilename(), wbGetScriptName(), wbGetServerName(), wbGetServerPort(), wbGetServerSoftware(), wbGetTranslatedURI()
2.3.13 wbGetRequestURI
2.3.13.1 Name
wbGetRequestURI : Request 의 URI 를 return 한다.
2.3.13.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
char *wbGetRequestURI(WBSVCINFO *rqst)
2.3.13.3 Description
Request 의 URI(Universal Resource Identifier)를 return 한다. 이것은 Domain 이름을 제외한 모든 요청내용을 보여준다.
wbGetRequestURI()함수와 아래 “See Also”에 설정된 함수들과 같이 사용할 때 이 함수들은 버퍼를 같이 사용하게 되므로 return 된 값을 String Copy 를 하지 않으면 마지막에 return 된 값이 출력된다. 그러므로 String Copy 를 이용할 것을 권한다.
2.3.13.4 Return Value
Request 의 URI(Universal Resource Identifier)를 return 한다.
2.3.13.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wbrequest.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
WebtoB WebtoB Reference Manual
TmaxSoft 80
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wbrequest SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = wbrequest
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i wbrquest.m
② service table 을 생성한다.
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(wbrequest.c)
#include <stdio.h>
#include <usrinc/wbapi.h>
#include <usrinc/atmi.h>
test(WBSVCINFO *rqst)
{
char *user;
user = wbGetRequestURI(rqst);
wbPutHdr(rqst, "Content-type", "text/html");
wbPrint(rqst, "<HTML><BODY>");
if(user != NULL)
{
WebtoB Reference Manual WebtoB
TmaxSoft 81
wbPrint(rqst, "REQUEST_URI : %s", user);
} else {
wbPrint(rqst, "<H1>uri is null</H1>");
}
wbPrint(rqst, "</body></html>");
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wbrequest
Result
Browser 로 WBAPI service 를 호출하면 다음과 같은 결과가 나온다.
2.3.13.6 See Also
wbGetAuthType(), wbGetContentLength(), wbGetDocumentRoot(), wbGetMethod(), wbGetParsedURI(), wbGetPathInfo(), wbGetPathTranslated(), wbGetProtocol(), wbGetQueryString(), wbGetRemoteAddr(), wbGetRemoteHost(), wbGetRemoteIdent(), wbGetRemoteUser(), wbGetScheme(), wbGetScriptFilename(), wbGetScriptName(), wbGetServerName(), wbGetServerPort(), wbGetServerSoftware(), wbGetTranslatedURI()
WebtoB WebtoB Reference Manual
TmaxSoft 82
2.3.14 wbGetScheme
2.3.14.1 Name
wbGetScheme : Request 된 서비스의 Protocol 정보를 return 한다.
2.3.14.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
char *wbGetScheme(WBSVCINFO *rqst)
2.3.14.3 Description
wbGetScheme()는 Request 된 서비스의 Protocol 정보를 얻어내는데 사용된다. 예를 들어 HTML 서비스를 이용한다면 wbGetScheme()는 ‘HTTP’를 return 하고 SSL 서비스를 이용한다면 ‘HTTPS’ 를 return 한다.
wbGetScheme()함수와 아래 “See Also”에 설정된 함수들과 같이 사용할 때 이 함수들은 버퍼를 같이 사용하게 되므로 return 된 값을 String Copy 를 하지 않으면 마지막에 return 된 값이 출력된다. 그러므로 String Copy 를 이용할 것을 권한다.
2.3.14.4 Return Value
Request 된 서비스의 Protocol 정보를 return 한다.
2.3.14.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wbscheme.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
WebtoB Reference Manual WebtoB
TmaxSoft 83
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wbscheme SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = wbscheme
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i wbscheme.m
② service table 을 생성한다.
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(wbscheme.c)
#include <stdio.h>
#include <usrinc/wbapi.h>
#include <usrinc/atmi.h>
test(WBSVCINFO *rqst) {
char *sch;
sch = wbGetScheme(rqst);
wbPutHdr(rqst, "Content-type", "text/html");
wbPrint(rqst, "<HTML><BODY>");
if(sch != NULL)
{
wbPrint(rqst, "scheme : %s", sch);
}
else
{
wbPrint(rqst, "<H1>scheme is null</H1>");
}
wbPrint(rqst, "</body></html>");
wbReturn(rqst, WBSUCCESS);
}
WebtoB WebtoB Reference Manual
TmaxSoft 84
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wbscheme
Result
Browser 로 WBAPI service 를 호출하면 다음과 같은 결과가 나온다.
2.3.14.6 See Also
wbGetAuthType(), wbGetContentLength(), wbGetDocumentRoot(), wbGetMethod(), wbGetParsedURI(), wbGetPathInfo(), wbGetPathTranslated(), wbGetProtocol(), wbGetQueryString(), wbGetRemoteAddr(), wbGetRemoteHost(), wbGetRemoteIdent(), wbGetRemoteUser(), wbGetRequestURI(), wbGetScriptFilename(), wbGetScriptName(), wbGetServerName(), wbGetServerPort(), wbGetServerSoftware(), wbGetTranslatedURI()
2.3.15 wbGetScriptFilename
2.3.15.1 Name
wbGetScriptFilename : Request 한 WBAPI 서비스가 실행되는 절대경로를 return 한다.
2.3.15.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
char *wbGetScriptFilename(WBSVCINFO *rqst)
WebtoB Reference Manual WebtoB
TmaxSoft 85
2.3.15.3 Description
Client 가 Request 를 Request 한 서비스가 실행될 절대경로를 얻어내는데 사용되는 함수이다.
예를 들어 서비스가 실행되는 경로가 ‘/usr/local/webtob/ap/test’라면 wbGetScriptFilename()이 return 하는 값은 “/usr/local/webtob/ap/test”이다.
wbGetScriptFilename()함수와 아래 “See Also”에 설정된 함수들과 같이 사용할 때 이 함수들은 버퍼를 같이 사용하게 되므로 return 된 값을 String Copy 를 하지 않으면 마지막에 return 된 값이 출력된다. 그러므로 String Copy 를 이용할 것을 권한다.
2.3.15.4 Return Value
Request 한 서비스가 실행되는 절대경로를 return 한다.
2.3.15.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wbscriptfile.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wbscriptfile SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = wbscriptfile
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
WebtoB WebtoB Reference Manual
TmaxSoft 86
*ALIAS
alias uri="/svct/",
RealPath="/user2/haninho/webtob/svct/"
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i wbscriptfile.m
② service table 을 생성한다.
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(wbscriptfile.c)
#include <stdio.h>
#include <usrinc/wbapi.h>
#include <usrinc/atmi.h>
test(WBSVCINFO *rqst)
{
char *name;
name = wbGetScriptFilename(rqst);
wbPutHdr(rqst, "Content-type", "text/html");
wbPrint(rqst, "<HTML><BODY>");
if(name != NULL) {
wbPrint(rqst, "Script Filename : %s", name);
} else {
wbPrint(rqst, "<H1>error</H1>");
}
wbPrint(rqst, "</body></html>");
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wbscriptfile
WebtoB Reference Manual WebtoB
TmaxSoft 87
Result
Browser 로 WBAPI service 를 호출하면 다음과 같은 결과가 나온다.
2.3.15.6 See Also
wbGetAuthType(), wbGetContentLength(), wbGetDocumentRoot(), wbGetMethod(), wbGetParsedURI(), wbGetPathInfo(), wbGetPathTranslated(), wbGetProtocol(), wbGetQueryString(), wbGetRemoteAddr(), wbGetRemoteHost(), wbGetRemoteIdent(), wbGetRemoteUser(), wbGetRequestURI(), wbGetScheme(), wbGetScriptName(), wbGetServerName(), wbGetServerPort(), wbGetServerSoftware(), wbGetTranslatedURI()
2.3.16 wbGetScriptName
2.3.16.1 Name
wbGetScriptName : Request 한 서비스가 실행되는 경로를 return 한다.
2.3.16.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
char *wbGetScriptName(WBSVCINFO *rqst)
2.3.16.3 Description
wbGetScriptName()은 CGI 환경변수 “SCRIPT_NAME”에 해당하는 정보를 얻어내는데 사용되는 함수이다.
wbGetScriptName()함수와 아래 “See Also”에 설정된 함수들과 같이 사용할 때 이 함수들은 버퍼를 같이 사용하게 되므로 return 된 값을
WebtoB WebtoB Reference Manual
TmaxSoft 88
String Copy 를 하지 않으면 마지막에 return 된 값이 출력된다. 그러므로 String Copy 를 이용할 것을 권한다.
2.3.16.4 Return Value
Request 한 파일의 절대경로를 return 한다.
2.3.16.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wbscriptname.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wbscriptname SVGNAME = webapg, MinProc = 1, MaxProc = 2
*SERVICE
test SVRNAME = wbscriptname
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i wbscriptfile.m
② service table 을 생성한다.
$wsgst
WebtoB Reference Manual WebtoB
TmaxSoft 89
Source
요청을 처리해 주는 wbapi 프로그램(wbscriptname.c)
#include <stdio.h>
#include <usrinc/wbapi.h>
#include <usrinc/atmi.h>
test(WBSVCINFO *rqst) {
char *name;
name = wbGetScriptName(rqst);
wbPutHdr(rqst, "Content-type", "text/html");
wbPrint(rqst, "<HTML><BODY>");
if(name != NULL) {
wbPrint(rqst, "Script Name : %s", name);
} else {
wbPrint(rqst, "<H1>error</H1>");
}
wbPrint(rqst, "</body></html>");
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wbscriptname
Result
Browser 로 WBAPI service 를 호출하면 다음과 같은 결과가 나온다.
WebtoB WebtoB Reference Manual
TmaxSoft 90
2.3.16.6 See Also
wbGetAuthType(), wbGetContentLength(), wbGetDocumentRoot(), wbGetMethod(), wbGetParsedURI(), wbGetPathInfo(), wbGetPathTranslated(), wbGetProtocol(), wbGetQueryString(), wbGetRemoteAddr(), wbGetRemoteHost(), wbGetRemoteIdent(), wbGetRemoteUser(), wbGetRequestURI(), wbGetScheme(), wbGetScriptFilename(), wbGetServerName(), wbGetServerPort(), wbGetServerSoftware(), wbGetTranslatedURI()
2.3.17 wbGetServerName
2.3.17.1 Name
wbGetServerName : 서버의 hostname 을 return 한다.
2.3.17.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
char *wbGetServerName(WBSVCINFO *rqst)
2.3.17.3 Description
wbGetServerName()은 CGI 환경변수 “SERVER_NAME”에 해당하는 정보를 얻어내는데 사용되는 함수이다.
wbGetServerName()함수와 아래 “See Also”에 설정된 함수들과 같이 사용할 때 이 함수들은 버퍼를 같이 사용하게 되므로 return 된 값을 String Copy 를 하지 않으면 마지막에 return 된 값이 출력된다. 그러므로 String Copy 를 이용할 것을 권한다.
2.3.17.4 Return Value
서버의 hostname 을 return 한다.
2.3.17.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wbservername.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
WebtoB Reference Manual WebtoB
TmaxSoft 91
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wbservername SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = wbservername
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i wbscriptfile.m
② service table 을 생성한다.
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(wbservername.c)
#include <stdio.h>
#include <usrinc/wbapi.h>
#include <usrinc/atmi.h>
test(WBSVCINFO *rqst)
{
char *name;
name = wbGetServerName(rqst);
wbPutHdr(rqst, "Content-type", "text/html");
wbPrint(rqst, "<HTML><BODY>");
if(name != NULL)
{
WebtoB WebtoB Reference Manual
TmaxSoft 92
wbPrint(rqst, "Server Name : %s", name);
}
else
{
wbPrint(rqst, "<H1>error</H1>");
}
wbPrint(rqst, "</body></html>");
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다.
$compile c wbservername
Result
Browser 로 WBAPI service 를 호출하면 다음과 같은 결과가 나온다.
2.3.17.6 See Also
wbGetAuthType(), wbGetContentLength(), wbGetDocumentRoot(), wbGetMethod(), wbGetParsedURI(), wbGetPathInfo(), wbGetPathTranslated(), wbGetProtocol(), wbGetQueryString(), wbGetRemoteAddr(), wbGetRemoteHost(), wbGetRemoteIdent(), wbGetRemoteUser(), wbGetRequestURI(), wbGetScheme(), wbGetScriptFilename(), wbGetScriptName(), wbGetServerPort(), wbGetServerSoftware(), wbGetTranslatedURI()
WebtoB Reference Manual WebtoB
TmaxSoft 93
2.3.18 wbGetServerPort
2.3.18.1 Name
wbGetServerPort : 서버의 port 번호를 return 한다.
2.3.18.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
char *wbGetServerPort(WBSVCINFO *rqst)
2.3.18.3 Description
wbGetServerPort()은 CGI 환경변수 “SERVER_PORT”에 해당하는 정보를 얻어내는데 사용되는 함수이다.
wbGetServerPort()함수와 아래 “See Also”에 설정된 함수들과 같이 사용할 때 이 함수들은 버퍼를 같이 사용하게 되므로 return 된 값을 String Copy 를 하지 않으면 마지막에 return 된 값이 출력된다. 그러므로 String Copy 를 이용할 것을 권한다.
2.3.18.4 Return Value
서버의 port 번호를 return 한다.
2.3.18.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wbserverport.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
WebtoB WebtoB Reference Manual
TmaxSoft 94
wbserverport SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = wbserverport
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i wbscriptfile.m
② service table 을 생성한다.
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(wbserverport.c)
#include <stdio.h>
#include <usrinc/wbapi.h>
#include <usrinc/atmi.h>
test(WBSVCINFO *rqst)
{
char *port;
port = wbGetServerPort(rqst);
wbPutHdr(rqst, "Content-type", "text/html");
wbPrint(rqst, "<HTML><BODY>");
if(port != NULL)
{
wbPrint(rqst, "Server Port : %s", port);
}
else
{
wbPrint(rqst, "<H1>error</H1>");
}
wbPrint(rqst, "</body></html>");
wbReturn(rqst, WBSUCCESS);
}
WebtoB Reference Manual WebtoB
TmaxSoft 95
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wbserverport
Result
Browser 로 WBAPI service 를 호출하면 다음과 같은 결과가 나온다.
2.3.18.6 See Also
wbGetAuthType(), wbGetContentLength(), wbGetDocumentRoot(), wbGetMethod(), wbGetParsedURI(), wbGetPathInfo(), wbGetPathTranslated(), wbGetProtocol(), wbGetQueryString(), wbGetRemoteAddr(), wbGetRemoteHost(), wbGetRemoteIdent(), wbGetRemoteUser(), wbGetRequestURI(), wbGetScheme(), wbGetScriptFilename(), wbGetScriptName(), wbGetServerName(), wbGetServerSoftware(), wbGetTranslatedURI()
2.3.19 wbGetServerSoftware
2.3.19.1 Name
wbGetServerSoftware : 서버의 Software 정보를 return 한다.
2.3.19.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
char *wbGetServerSoftware(WBSVCINFO *rqst)
WebtoB WebtoB Reference Manual
TmaxSoft 96
2.3.19.3 Description
wbGetServerSoftware()은 CGI 환경변수 “SERVER_SOFTWARE”에 해당하는 정보를 얻어내는데 사용되는 함수이다.
wbGetServerSoftware()함수와 아래 “See Also”에 설정된 함수들과 같이 사용할 때 이 함수들은 버퍼를 같이 사용하게 되므로 return 된 값을 String Copy 를 하지 않으면 마지막에 return 된 값이 출력된다. 그러므로 String Copy 를 이용할 것을 권한다.
2.3.19.4 Return Value
서버의 Software 정보를 return 한다.
2.3.19.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wbsoft.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wbsoft SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = wbsoft
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
WebtoB Reference Manual WebtoB
TmaxSoft 97
① 환경 파일을 compile 한다.
$wscfl –i wbscriptfile.m
② service table 을 생성한다.
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(wbsoft.c)
#include <stdio.h>
#include <usrinc/wbapi.h>
#include <usrinc/atmi.h>
test(WBSVCINFO *rqst)
{
char *server;
server= wbGetServerSoftware(rqst);
wbPutHdr(rqst, "Content-type", "text/html");
wbPrint(rqst, "<HTML><BODY>");
if(server != NULL)
{
wbPrint(rqst, "SERVER : %s", server);
}
else
{
wbPrint(rqst, "<H1>server is null</H1>");
}
wbPrint(rqst, "</body></html>");
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wbsoft
Result
Browser 로 WBAPI service 를 호출하면 다음과 같은 결과가 나온다.
WebtoB WebtoB Reference Manual
TmaxSoft 98
2.3.19.6 See Also
wbGetAuthType(), wbGetContentLength(), wbGetDocumentRoot(), wbGetMethod(), wbGetParsedURI(), wbGetPathInfo(), wbGetPathTranslated(), wbGetProtocol(), wbGetQueryString(), wbGetRemoteAddr(), wbGetRemoteHost(), wbGetRemoteIdent(), wbGetRemoteUser(), wbGetRequestURI(), wbGetScheme(), wbGetScriptFilename(), wbGetScriptName(), wbGetServerName(), wbGetServerPort(), wbGetTranslatedURI()
2.3.20 wbGetTranslatedURI
2.3.20.1 Name
wbGetTranslatedURI : Request 된 서비스의 URI 를 해석하여 실제 경로를 return 한다.
2.3.20.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
char *wbGetTranslatedURI(WBSVCINFO *rqst)
2.3.20.3 Description
wbGetTranslatedURI()은 parsing 된 URI 의 실제 경로를 얻어내는데 사용된다.
wbGetTranslatedURI()함수와 아래 “See Also”에 설정된 함수들과 같이 사용할 때 이 함수들은 버퍼를 같이 사용하게 되므로 return 된 값을 String Copy 를 하지 않으면 마지막에 return 된 값이 출력된다. 그러므로 String Copy 를 이용할 것을 권한다.
WebtoB Reference Manual WebtoB
TmaxSoft 99
2.3.20.4 Return Value
Request 된 서비스의 URI 를 해석하여 실제 경로를 return 한다.
2.3.20.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wbtransuri.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wbtransuri SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = wbtransuri
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*ALIAS
alias uri="/svct/",
RealPath="/user2/haninho/webtob/svct/"
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i wbscriptfile.m
② service table 을 생성한다.
WebtoB WebtoB Reference Manual
TmaxSoft 100
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(wbtransuri.c)
#include <stdio.h>
#include <usrinc/wbapi.h>
#include <usrinc/atmi.h>
test(WBSVCINFO *rqst) {
char *uri;
uri = wbGetTranslatedURI(rqst);
wbPutHdr(rqst, "Content-type", "text/html");
wbPrint(rqst, "<HTML><BODY>");
if(uri != NULL) {
wbPrint(rqst, "URI : %s", uri);
} else {
wbPrint(rqst, "<H1>URI is null</H1>");
}
wbPrint(rqst, "</body></html>");
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wbtransuri
Result
Browser 로 WBAPI service 를 호출하면 다음과 같은 결과가 나온다.
WebtoB Reference Manual WebtoB
TmaxSoft 101
2.3.20.6 See Also
wbGetAuthType(), wbGetContentLength(), wbGetDocumentRoot(), wbGetMethod(), wbGetParsedURI(), wbGetPathInfo(), wbGetPathTranslated(), wbGetProtocol(), wbGetQueryString(), wbGetRemoteAddr(), wbGetRemoteHost(), wbGetRemoteIdent(), wbGetRemoteUser(), wbGetRequestURI(), wbGetScheme(), wbGetScriptFilename(), wbGetScriptName(), wbGetServerName(), wbGetServerPort(), wbGetServerSoftware()
2.3.21 wbGetHdr
2.3.21.1 Name
wbGetHdr : Request 의 Header 에서 Key 에 해당하는 값을 return 한다.
2.3.21.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
char *wbGetHdr(WBSVCINFO *rqst, char *key)
2.3.21.3 Description
이 함수는 Client 가 보낸 Request 의 Header 에서 특정 Key 값에 해당하는 것을 찾아내서 반환하는 것이다. 만약, Client 가 보낸 Request Header 들 중에서 특정 Header 의 값을 얻어내고자 할 때, 특정 Header 의 이름을 Key 로 하여 그에 해당하는 정보를 얻어낼 수 있다.
인수 key 는 “Content-type”이나 “Referer”와 같은 Header 의 이름이다.
2.3.21.4 Return Value
인수 key 의 값에 해당하는 Header 값을 return 한다. 만약 그에 해당하는 정보가 존재하지 않으면 NULL 값을 return 한다.
2.3.21.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wbhdr.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
WebtoB WebtoB Reference Manual
TmaxSoft 102
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wbhdr SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = wbhdr
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i wbscriptfile.m
② service table 을 생성한다.
$wsgst
Source
Client 에서 요청하는 html(wbhdr.html)
<head><title>wbGetHdr</title></head>
<body>
<form method=get action="/svct/test">
<table width=370>
<br>
<tr>
<td> input name</td>
<td><input type=input name=name></td>
<td><input type=submit value="submit"></td>
</tr>
</table>
WebtoB Reference Manual WebtoB
TmaxSoft 103
</form>
</body>
</html>
요청을 처리해 주는 wbapi 프로그램(wbhdr.c)
#include <stdio.h>
#include <usrinc/atmi.h>
#include <usrinc/wbapi.h>
test(WBSVCINFO *rqst)
{
char *header1;
char *header2;
header1 = wbGetHdr(rqst, "Referer");
header2 = wbGetHdr(rqst, "Host");
wbPutHdr(rqst, "Content-type", "text/html");
wbPrint(rqst, "<H1>Referer : %s</H1>", header1);
wbPrint(rqst, "<H1>Host : %s</H1>", header2);
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wbhdr
Result
Client 에서 server 로 요청하는 html
Browser 로 WBAPI service 를 호출하면 다음과 같은 결과가 나온다.
WebtoB WebtoB Reference Manual
TmaxSoft 104
2.3.21.6 See Also
wbGetDateHdr(), wbGetIntHdr(), wbGetNthHdr(), wbGetHdrCount()
2.3.22 wbGetDateHdr
2.3.22.1 Name
wbGetDateHdr : Date 를 표현하는 Header 의 값을 return 한다.
2.3.22.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
long wbGetDateHdr(WBSVCINFO *rqst, char *name)
2.3.22.3 Description
Date 를 표현하는 Header 의 값을 long 형태로 return 한다. 만약 요청한 Header 가 존재하지 않는다면 에러를 발생시킨다. Date 로 변환될 수 없는 값을 가진 Header 에 호출되었으면 역시 에러를 발생시킨다. 이 API 는 “If-Modified-Since”와 “If-Unmodified-Since”와 같은 Header 를 핸들링하는데 유용하게 쓰인다.
인수 name 은 Date 를 표현하는 Header 이어야 한다. 현재 wbGetDateHdr()함수는 “Last-Modified”와 “If-Modified-Since”에 대해서만 값을 return 한다.
2.3.22.4 Return Value
1970 GMT, 1 월 1 이 자정이후부터 밀리세컨드로 표현된 long 값으로 지정된 Header 를 return 한다.
WebtoB Reference Manual WebtoB
TmaxSoft 105
요청한 Header 가 존재하지 않거나 Date 로 변환될 수 없는 값을 가진 Header 에 대해 wbGetDateHdr()을 호출하게 되면 –1 을 return 한다.
2.3.22.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wbdatehdr.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wbdatehdr SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = wbdatehdr
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i wbdatahdr.m
② service table 을 생성한다.
$wsgst
WebtoB WebtoB Reference Manual
TmaxSoft 106
Source
요청을 처리해 주는 wbapi 프로그램(wbdatehdr.c)
#include <stdio.h>
#include <usrinc/atmi.h>
#include <usrinc/wbapi.h>
test (WBSVCINFO *rqst)
{
long date1;
long date2;
date1 = wbGetDateHdr(rqst, "If-Modified-Since");
date2 = wbGetDateHdr(rqst, "If-Unmodified-Since");
wbPrint(rqst, "<HTML>\n");
wbPrint(rqst, "<HEAD><TITLE> wbGetDateHdr Test
</TITLE></HEAD>\n");
wbPrint(rqst, "<BODY>\n");
wbPrint(rqst, "<H1> wbGetDateHdr Test </H1>\n");
wbPrint(rqst, "If-Modified-Since : %ld<br>", date1);
wbPrint(rqst, "If-Unmodified-Since : %ld<br>", date2);
wbPrint(rqst, "</BODY>\n");
wbPrint(rqst, "</HTML>\n");
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wbdatahdr
Result
Browser 로 WBAPI service 를 호출하면 다음과 같은 결과가 나온다.
telnet 61.77.153.5 7654
WebtoB Reference Manual WebtoB
TmaxSoft 107
Trying 61.77.153.5...
Connected to 61.77.153.5.
Escape character is '^]'.
GET /svct/test HTTP/1.1
Host:tmax.co.kr
If-Modified-Since:Mon, 20 Aug 2001 23:02:16 GMT
If-UnModified-Since:Mon, 20 Aug 2001 23:02:16 GMT
HTTP/1.1 200 OK
Date: Mon, 05 Nov 2001 08:26:52 GMT
Server: WebtoB/3.0
Content-Type: text/html
Content-Length: 175
<HTML>
<HEAD><TITLE> wbGetDateHdr Test </TITLE></HEAD>
<BODY>
<H1> wbGetDateHdr Test </H1>
If-Modified-Since : 998348536<br>If-Unmodified-Since :
998348536<br></BODY>
</HTML>
2.3.22.6 See Also
wbGetHdr(), wbGetIntHdr(), wbGetNthHdr(), wbGetHdrCount()
2.3.23 wbGetIntHdr
2.3.23.1 Name
wbGetIntHdr :정수형태로 된 Header 의 값을 return 한다.
2.3.23.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
int wbGetIntHdr(WBSVCINFO *rqst, char *name)
2.3.23.3 Description
지정된 Header 를 정수형태로 return 한다. 만약 Header 가 요청의 일부분으로 보내지지 않았다면 –1 을 return 한다. 또한 정수형으로 변환될 수 없는 값을 가진 Header 에 호출되었으면 에러를 발생시킨다.
WebtoB WebtoB Reference Manual
TmaxSoft 108
인수 name 은 “Age”나 “Retry-After”같은 정수 형태의 Header 이름이다.
2.3.23.4 Return Value
지정된 Header 의 값을 정수형태로 return 한다. 에러 발생시 –1 을 return 한다.
2.3.23.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wbinthdr.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wbinthdr SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = wbinthdr
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i wbinthdr.m
② service table 을 생성한다.
$wsgst
WebtoB Reference Manual WebtoB
TmaxSoft 109
Source
요청을 처리해 주는 wbapi 프로그램(wbinthdr.c)
#include <stdio.h>
#include <usrinc/wbapi.h>
#include <usrinc/atmi.h>
test(WBSVCINFO *rqst)
{
int hdr1, hdr2, hdr3;
wbPutHdr(rqst, "Content-type", "text/html");
wbPrint(rqst, "<HTML><BODY>");
hdr1 = wbGetIntHdr(rqst, "Max-Forwards");
wbPrint(rqst, "wbGetIntHdr(Max-Forwards) : %d<br>", hdr1);
hdr2 = wbGetIntHdr(rqst, "Retry-After");
wbPrint(rqst, "wbGetIntHdr(Retry-After) : %d<br>", hdr2);
hdr3 = wbGetIntHdr(rqst, "Age");
wbPrint(rqst, "wbGetIntHdr(Age) : %d<br>", hdr2);
wbPrint(rqst, "</body></html>");
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wbinthdr
Result
telnet 로 WBAPI service 를 호출하면 다음과 같은 결과가 나온다.
telnet 61.77.153.5 7654
Trying 61.77.153.5...
Connected to 61.77.153.5.
Escape character is '^]'.
GET /svct/test HTTP/1.1
Host: tmaxh1.co.kr
Retry-After: 111
Max-Forwards: 222
Age: 333
WebtoB WebtoB Reference Manual
TmaxSoft 110
HTTP/1.1 200 OK
Date: Mon, 05 Nov 2001 08:56:07 GMT
Server: WebtoB/3.0
Content-type: text/html
Content-Length: 121
<HTML><BODY>wbGetIntHdr(Max-Forwards) :
222<br>wbGetIntHdr(Retry-After) : 111<br>wbGetIntHdr(Age) :
333<br></body></html>
2.3.23.6 See Also
wbGetHdr(), wbGetDateHdr(), wbGetNthHdr(), wbGetHdrCount()
2.3.24 wbGetNthHdr
2.3.24.1 Name
wbGetNthHdr :특정 순서에 해당하는 Header 의 값을 return 한다.
2.3.24.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
char *wbGetNthHdr(WBSVCINFO *rqst, int nth)
2.3.24.3 Description
Request Header 중에서 nth 번째에 해당하는 Header 의 값을 얻어내기 위한 함수이다.
인수 nth 는 Client 로부터 넘어오는 Header 의 값들 중에서 원하는 순서의 값을 설정한다.
2.3.24.4 Return Value
nth 번째에 해당하는 Header 의 값을 return 한다.
2.3.24.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wbnthhdr.m)
*DOMAIN
webtob1
*NODE
WebtoB Reference Manual WebtoB
TmaxSoft 111
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wbnthhdr SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = wbnthhdr
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i wbnthhdr.m
② service table 을 생성한다.
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(wbnthhdr.c)
#include <stdio.h>
#include <usrinc/wbapi.h>
#include <usrinc/atmi.h>
test(WBSVCINFO *rqst)
{
char *header;
header = wbGetNthHdr(rqst, 1);
wbPutHdr(rqst, "Content-type", "text/html");
WebtoB WebtoB Reference Manual
TmaxSoft 112
wbPrint(rqst, "<HTML><BODY>");
wbPrint(rqst, "wbGetNthHdr : %s<br>", header);
wbPrint(rqst, "</body></html>");
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wbnthhdr
Result
Browser 로 WBAPI service 를 호출하면 다음과 같은 결과가 나온다.
2.3.24.6 See Also
wbGetHdr(), wbGetDateHdr(), wbGetIntHdr(), wbGetHdrCount()
2.3.25 wbGetHdrCount
2.3.25.1 Name
wbGetHdrCount : Request Header 의 총 개수를 return 한다.
2.3.25.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
int wbGetHdrCount(WBSVCINFO *rqst)
2.3.25.3 Description
이 함수는 Request Header 의 총 개수를 알아내기 위한 함수이다.
WebtoB Reference Manual WebtoB
TmaxSoft 113
2.3.25.4 Return Value
Header 의 총 개수를 return 한다.
2.3.25.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wbhdrcount.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wbhdrcount SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = wbhdrcount
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i wbscriptfile.m
② service table 을 생성한다.
$wsgst
WebtoB WebtoB Reference Manual
TmaxSoft 114
Source
요청을 처리해 주는 wbapi 프로그램(wbhdrcount.c)
#include <stdio.h>
#include <usrinc/wbapi.h>
#include <usrinc/atmi.h>
test(WBSVCINFO *rqst)
{
int header;
header = wbGetHdrCount(rqst);
wbPutHdr(rqst, "Content-type", "text/html");
wbPrint(rqst, "<HTML><BODY>");
wbPrint(rqst, "Total header : %d<br>", header);
wbPrint(rqst, "</body></html>");
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wbnthhdr
Result
Browser 로 WBAPI service 를 호출하면 다음과 같은 결과가 나온다.
2.3.25.6 See Also
wbGetHdr(), wbGetDateHdr(), wbGetIntHdr(), wbGetNthHdr()
WebtoB Reference Manual WebtoB
TmaxSoft 115
2.3.26 wbGetData
2.3.26.1 Name
wbGetData : Request 의 Data Field 에서 Key 값에 해당하는 값을 return 한다.
2.3.26.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
char *wbGetData(WBSVCINFO *rqst, char *name)
2.3.26.3 Description
이 함수는 Client 가 보낸 Request 의 Data Field 에서 원하는 값을 얻을 때 이용된다. 보통 Client 가 CGI 등에 대한 Request 를 보내는 경우, 이것에는 Header 뿐만 아니라, Client 가 서버에 전달하고자 하는 Data 도 이어져 오는 경우가 많다. 이 때 원하는 Data 를 얻고자 할 때 이를 Key 값으로 하여 이에 해당하는 Data 를 얻을 수 있다.
2.3.26.4 Return Value
Key 에 해당하는 Field 의 Data 값을 return 한다. 만약 Key 에 해당하는 Data 값이 존재하지 않을 경우에는 NULL 값을 return 한다.
2.3.26.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wbdata.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
WebtoB WebtoB Reference Manual
TmaxSoft 116
wbdata SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = wbdata
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i wbscriptfile.m
② service table 을 생성한다.
$wsgst
Source
요청을 보내는 html(wbdata.html)
<HTML>
<HEAD> <TITLE>WebToB 게시판</TITLE> </HEAD>
<BODY>
<H2><big>WebToB Board Upload</big></H3>
</h2>
<HR WIDTH=500 ALIGN=left>
<BR>
<FORM METHOD=post ACTION="/svct/test">
<TABLE WIDTH=500 BORDER=0>
<TR>
<TD>Writer</TD>
<TD><INPUT NAME=writer SIZE=20></TD>
</TR>
<TR>
<TD>Title</TD>
<TD><INPUT NAME=title SIZE=50></TD>
</TR>
<TR><TD COLSPAN=2><B>Contents</B></TD></TR>
<TR><TD COLSPAN=2>
<TEXTAREA NAME=doc COLS=60 ROWS=10></TEXTAREA>
WebtoB Reference Manual WebtoB
TmaxSoft 117
</TD> </TR>
<TR>
<TD>E-Mail</TD>
<TD><INPUT NAME=email SIZE=40></TD>
</TR>
<TR>
<TD>Home Page</TD>
<TD><INPUT NAME=homepage SIZE=40 VALUE="http://"></TD>
</TR>
</TABLE>
<BR>
<INPUT TYPE=submit VALUE="Submit">
<INPUT TYPE=reset VALUE="Clear">
</FORM>
</BODY>
</HTML>
요청을 처리해 주는 wbapi 프로그램(wbdata.c)
#include <stdio.h>
#include <usrinc/wbapi.h>
#include <usrinc/atmi.h>
test(WBSVCINFO *rqst) {
char *name;
char *title;
name = wbGetData(rqst, "name");
title = wbGetData(rqst, "title");
wbPutHdr(rqst, "Content-type", "text/html");
wbPrint(rqst, "<HTML><BODY>");
wbPrint(rqst, "<H1>input name : %s</H1>", name);
wbPrint(rqst, "<BR>");
wbPrint(rqst, "<H1>input title : %s</H1>", title);
wbPrint(rqst, "</body></html>");
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wbdata
WebtoB WebtoB Reference Manual
TmaxSoft 118
Result
요청을 보내는 html
Browser 로 WBAPI service 를 호출하면 다음과 같은 결과가 나온다.
2.3.26.6 See Also
wbGetNthData(), wbGetDataCount()
2.3.27 wbGetNthKey
2.3.27.1 Name
wbGetNthKey : Request 에서 N 번째의 Key 에 대한 Data 를 return 한다.
2.3.27.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
char *wbGetNthKey(WBSVCINFO *rqst, int nth)
WebtoB Reference Manual WebtoB
TmaxSoft 119
2.3.27.3 Description
Client 가 Request 를 보냈을 때, 일반 CGI 의 경우 Data 가 Field 에 이어져서 들어온다. 이 때 들어오는 순서가 보통 Client 가 입력한 차례대로 들어오게 된다. 이 때 특정 순서의 Data 에 대한 입력 값을 얻고 싶을 때 이 함수를 이용하면 된다. 즉 ntn 라는 Field 에 순서를 적으면 그 순서에 맞는 입력 값에 대한 변수명이 들어오게 되는 것이다. 가령 nth 값을 2 라고 적는다면 두 번째로 들어오는 Data 의 변수 저장 명에 대한 값을 전달해 준다.
쉽게 예를 든다면 만약 Client 가 name 이라는 변수에 andy 라는 값을 넣었다고 하자. 이 때 이 name 이라는 변수 명이 첫번째 들어온 변수이고 이어서 title 이라는 변수에 test 라는 값을 넣었다면 이것이 두 번째 들어온 변수가 될 것이다. 이 때 이 함수를 이용하여 nth 에 2 라는 값을 넣는다면, title 라는 변수 저장 명을 전달하여 줄 것이다. 이는, WBAPI 등에서 Client 가 보내온 변수의 이름을 알아내는데 유용하게 이용된다.
2.3.27.4 Return Value
nth 에 해당하는 Field 명을 return 한다. 만약 그에 해당하는 Field 명이 존재하지 않으면 NULL 값을 return 한다.
2.3.27.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wbnthkey.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wbnthkey SVGNAME = webapg, MinProc = 1, MaxProc = 2,
WebtoB WebtoB Reference Manual
TmaxSoft 120
*SERVICE
test SVRNAME = wbnthkey
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i wbnthkey.m
② service table 을 생성한다.
$wsgst
Source
요청을 보내는 html(wbnthkey.html)
<HTML>
<HEAD> <TITLE>WebToB 게시판</TITLE> </HEAD>
<BODY>
<H2><big>WebToB Board Upload</big></H3>
</h2>
<HR WIDTH=500 ALIGN=left>
<BR>
<FORM METHOD=post ACTION="/svct/test">
<TABLE WIDTH=500 BORDER=0>
<TR>
<TD>Writer</TD>
<TD><INPUT NAME=writer SIZE=20></TD>
</TR>
<TR>
<TD>Title</TD>
<TD><INPUT NAME=title SIZE=50></TD>
</TR>
<TR><TD COLSPAN=2><B>Contents</B></TD></TR>
<TR><TD COLSPAN=2>
<TEXTAREA NAME=doc COLS=60 ROWS=10></TEXTAREA>
</TD> </TR>
WebtoB Reference Manual WebtoB
TmaxSoft 121
<TR>
<TD>E-Mail</TD>
<TD><INPUT NAME=email SIZE=40></TD>
</TR>
<TR>
<TD>Home Page</TD>
<TD><INPUT NAME=homepage SIZE=40 VALUE="http://"></TD>
</TR>
</TABLE>
<BR>
<INPUT TYPE=submit VALUE="Submit">
<INPUT TYPE=reset VALUE="Clear">
</FORM>
</BODY>
</HTML>
요청을 처리해 주는 wbapi 프로그램(wbnthkey.c)
#include <stdio.h>
#include <usrinc/wbapi.h>
#include <usrinc/atmi.h>
test(WBSVCINFO *rqst)
{
char *first, *second;
first = wbGetNthKey(rqst, 1);
second = wbGetNthKey(rqst, 2);
wbPutHdr(rqst, "Content-type", "text/html");
wbPrint(rqst, "<HTML><BODY>");
wbPrint(rqst, "<H1>first data : %s</H1>", first);
wbPrint(rqst, "<BR>");
wbPrint(rqst, "<H1>second data : %s</H1>", second);
wbPrint(rqst, "</body></html>");
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wbservername
WebtoB WebtoB Reference Manual
TmaxSoft 122
Result
요청을 보내는 html
Browser 로 WBAPI service 를 호출하면 다음과 같은 결과가 나온다.
2.3.27.6 See Also
wbGetData(), wbGetNthData(), wbGetValue()
2.3.28 wbGetNthData
2.3.28.1 Name
wbGetNthData : Request 의 Data 에서 N 번째 Data 를 return 한다.
2.3.28.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
char *wbGetNthData(WBSVCINFO *rqst, int nth)
2.3.28.3 Description
Client 가 요구한 Request 에서 Header 외에도 여러개의 Data 가 동시에 올 수 있다. 이들 중, 원하는 순서의 Data 를 얻어내는 것을 말한다. Client 가 Request 를 보냈을 때, 일반 CGI 의 경우 Data 가 Field 에 이어져서 들어온다. 이 때 들어오는 순서가 보통 Client 가 입력한 차례대로 들어오게 된다. 이 때 특정 순서의 Data 를 얻고 싶을 때 이
WebtoB Reference Manual WebtoB
TmaxSoft 123
함수를 이용하면 된다. 즉, nth 라는 Field 에 순서를 적으면 그 순서에 맞는 Data 가 들어오게 되는 것이다. 가령 ntn 값을 2 라고 적는 다면, 두 번째로 들어오는 Data 에 대한 값을 전달해 준다. 앞에서 설명한 wbGetNthKey()와 혼동할 여지가 있으나, 앞의 함수는 변수명을 전달하는 것이고, 이 wbGetNthData()는 변수의 실제 값을 전달한다는 것을 반드시 기억하여야 한다.
2.3.28.4 Return Value
nth 에 해당하는 Data 값을 return 한다. 만약 그에 해당하는 Data 값이 존재하지 않으면 NULL 값을 return 한다.
2.3.28.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wbnthdata.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wbnthdata SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = wbnthdata
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
WebtoB WebtoB Reference Manual
TmaxSoft 124
① 환경 파일을 compile 한다.
$wscfl –i wbnthdata.m
② service table 을 생성한다.
$wsgst
Source
요청을 보내는 html(wbnthdata.html)
<HTML>
<HEAD> <TITLE>WebToB 게시판</TITLE> </HEAD>
<BODY>
<H2><big>WebToB Board Upload</big></H3>
</h2>
<HR WIDTH=500 ALIGN=left>
<BR>
<FORM METHOD=post ACTION="/svct/test">
<TABLE WIDTH=500 BORDER=0>
<TR>
<TD>Writer</TD>
<TD><INPUT NAME=writer SIZE=20></TD>
</TR>
<TR>
<TD>Title</TD>
<TD><INPUT NAME=title SIZE=50></TD>
</TR>
<TR><TD COLSPAN=2><B>Contents</B></TD></TR>
<TR><TD COLSPAN=2>
<TEXTAREA NAME=doc COLS=60 ROWS=10></TEXTAREA>
</TD> </TR>
<TR>
<TD>E-Mail</TD>
<TD><INPUT NAME=email SIZE=40></TD>
</TR>
<TR>
<TD>Home Page</TD>
<TD><INPUT NAME=homepage SIZE=40 VALUE="http://"></TD>
</TR>
</TABLE>
<BR>
WebtoB Reference Manual WebtoB
TmaxSoft 125
<INPUT TYPE=submit VALUE="Submit">
<INPUT TYPE=reset VALUE="Clear">
</FORM>
</BODY>
</HTML>
요청을 처리해 주는 wbapi 프로그램(wbnthdata.c)
#include <stdio.h>
#include <usrinc/wbapi.h>
#include <usrinc/atmi.h>
test(WBSVCINFO *rqst) {
char *first, *second;
first = wbGetNthData(rqst, 1);
second = wbGetNthData(rqst, 2);
wbPutHdr(rqst, "Content-type", "text/html");
wbPrint(rqst, "<HTML><BODY>");
wbPrint(rqst, "<H1>first data : %s</H1>", first);
wbPrint(rqst, "<BR>");
wbPrint(rqst, "<H1>second data : %s</H1>", second);
wbPrint(rqst, "</body></html>");
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wbnthdey
Result : 요청을 보내는 html
WebtoB WebtoB Reference Manual
TmaxSoft 126
Browser 로 WBAPI service 를 호출하면 다음과 같은 결과가 나온다.
2.3.28.6 See Also
wbGetData(), wbGetDataCount()
2.3.29 wbGetDataCount
2.3.29.1 Name
wbGetDataCount : Request 에서 입력으로 들어온 Data 의 개수를 return 한다.
2.3.29.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
int wbGetDataCount(WBSVCINFO *rqst)
2.3.29.3 Description
Client 가 요구한 Request 에서 Header 외에도 여러개의 Data 가 동시에 올 수 있다.
wbGetDataCount()는 Client 가 Request 를 통하여 서버에 전달한 Data 의 총 개수를 return 하는 함수이다.
2.3.29.4 Return Value
Client 가 서버에 전달한 Data 의 총 개수를 return 한다.
2.3.29.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wbdatacount.m)
WebtoB Reference Manual WebtoB
TmaxSoft 127
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wbdatacount SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = wbdatacount
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i wbnthkey.m
② service table 을 생성한다.
$wsgst
Source
요청을 보내는 html(wbdatacount.html)
<HTML>
<HEAD> <TITLE>WebToB 게시판</TITLE> </HEAD>
<BODY>
<H2><big>WebToB Board Upload</big></H3>
WebtoB WebtoB Reference Manual
TmaxSoft 128
</h2>
<HR WIDTH=500 ALIGN=left>
<BR>
<FORM METHOD=post ACTION="/svct/test">
<TABLE WIDTH=500 BORDER=0>
<TR>
<TD>Writer</TD>
<TD><INPUT NAME=writer SIZE=20></TD>
</TR>
<TR>
<TD>Title</TD>
<TD><INPUT NAME=title SIZE=50></TD>
</TR>
<TR><TD COLSPAN=2><B>Contents</B></TD></TR>
<TR><TD COLSPAN=2>
<TEXTAREA NAME=doc COLS=60 ROWS=10></TEXTAREA>
</TD> </TR>
<TR>
<TD>E-Mail</TD>
<TD><INPUT NAME=email SIZE=40></TD>
</TR>
<TR>
<TD>Home Page</TD>
<TD><INPUT NAME=homepage SIZE=40 VALUE="http://"></TD>
</TR>
</TABLE>
<BR>
<INPUT TYPE=submit VALUE="Submit">
<INPUT TYPE=reset VALUE="Clear">
</FORM>
</BODY>
</HTML>
요청을 처리해 주는 wbapi 프로그램(wbdatacount.c)
#include <stdio.h>
#include <usrinc/wbapi.h>
#include <usrinc/atmi.h>
test(WBSVCINFO *rqst)
{
int count;
WebtoB Reference Manual WebtoB
TmaxSoft 129
count = wbGetDataCount(rqst);
wbPutHdr(rqst, "Content-type", "text/html");
wbPrint(rqst, "<HTML><BODY>");
wbPrint(rqst, "<H1>total data count : %d</H1>", count);
wbPrint(rqst, "</body></html>");
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wbdatacount
Result
요청을 보내는 html
Browser 로 WBAPI service 를 호출하면 다음과 같은 결과가 나온다.
2.3.29.6 See Also
wbGetData(), wbGetNthData()
WebtoB WebtoB Reference Manual
TmaxSoft 130
2.3.30 wbGetValue
2.3.30.1 Name
wbGetValue : Request 에서 특정 Key 값의 N 번째 Data 를 return 한다.
2.3.30.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
char *wbGetValue(WBSVCINFO *rqst, char *key, int nth)
2.3.30.3 Description
Client 가 서버에 Request 를 전달하는 경우, Data 가 여러 개 이어져 들어올 때 하나의 변수에 여러 개의 Data 가 연결되어 들어 올 수도 있다. 이 때 하나의 변수에 여러 개의 Data 가 들어온 경우 각 순서에 맞는 Data 를 얻어내는 것이 가능하다. 즉 Client 가 name 이란 변수에 두 가지 값을 넣은 경우 이를 nth 라는 순서에 의해서 얻어내는 것이 가능하다.
예를 들어 Client 가 name 이라는 변수에 두가지 값을 넣은 경우 nth 의 값으로 1 을 설정하면 name 이라는 변수이름을 통해 들어오는 값들의 첫번째 값을 얻어내며 nth 의 값으로 2 를 설정하면 name 이라는 변수이름을 통해 들어오는 값들의 두번째 값을 얻어낸다.
2.3.30.4 Return Value
특정 key 의 nth 번째 Data 를 return 한다. nth 번째 해당하는 Data 가 존재하지 않는다면 NULL 값을 return 한다.
2.3.30.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wbvalue.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
WebtoB Reference Manual WebtoB
TmaxSoft 131
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wbvalue SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = wbvalue
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i wbvalue.m
② service table 을 생성한다.
$wsgst
Source
요청을 보내는 html(wbvalue.html)
<html>
<head><title>wbGetValue</title></head>
<body>
<form method=get action="/svct/test">
<table width=370>
<br>
<h1> input name</h1>
<tr>
<td><input type=input name=name></td>
<td><input type=input name=name></td>
<td><input type=input name=name></td>
<td><input type=submit value="submit"></td>
</tr>
</table>
</form>
WebtoB WebtoB Reference Manual
TmaxSoft 132
</body>
</html>
요청을 처리해 주는 wbapi 프로그램(wbvalue.c)
#include <stdio.h>
#include <usrinc/wbapi.h>
#include <usrinc/atmi.h>
test(WBSVCINFO *rqst) {
char *value1, *value2, *value3;
value1 = wbGetValue(rqst,"name",3);
value2 = wbGetValue(rqst,"name",2);
value3 = wbGetValue(rqst,"name",1);
wbPutHdr(rqst, "Content-type", "text/html");
wbPrint(rqst, "<HTML><BODY>");
wbPrint(rqst, "<H1>value1 is : %s</H1>", value1);
wbPrint(rqst, "<H1>value2 is : %s</H1>", value2);
wbPrint(rqst, "<H1>value3 is : %s</H1>", value3);
wbPrint(rqst, "</body></html>");
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wbvalue
Result
요청을 보내는 html
WebtoB Reference Manual WebtoB
TmaxSoft 133
Browser 로 WBAPI service 를 호출하면 다음과 같은 결과가 나온다.
2.3.30.6 See Also
wbGetData(), wbGetNthData()
2.3.31 wbKeyOccur
2.3.31.1 Name
wbKeyOccur : Request 들어온 Data 에서 Key 값의 수를 return 한다.
2.3.31.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
int wbKeyOccur(WBSVCINFO *rqst, char *key)
2.3.31.3 Description
Client 가 Sever 에 Request 를 전달했을 때, 여러 개의 Data 가 전달될 수 있다. 또한 하나의 변수 이름에 여러 개의 Data 가 전달될 수 있다. 이 때 Client 가 보낸 Data 들 중에서 하나의 변수 이름에 여러 개의 Data 가 전달될 경우 특정 변수의 이름을 통해 전달되는 Data 의 개수를 측정하는데 wbKeyOccur()을 이용할 수 있다. 즉, 이 함수는 인수 key 에 입력된 변수명에 해당하는 Data 의 개수를 전달하게 된다.
인수 key 는 Client 가 서버로 Data 를 전달할 때 사용하는 변수의 이름이다.
2.3.31.4 Return Value
특정 key 에 해당하는 Data 의 개수를 return 한다.
WebtoB WebtoB Reference Manual
TmaxSoft 134
2.3.31.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wboccur.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wboccur SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = wboccur
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i wboccur.m
② service table 을 생성한다.
$wsgst
2.3.31.6 Source
요청을 보내는 html(wboccur.html)
WebtoB Reference Manual WebtoB
TmaxSoft 135
<html>
<head><title>wbGetOccur</title></head>
<body>
<form method=get action="/svct/test">
<table width=370>
<br>
<h1> input name</h1>
<tr>
<td><input type=input name=name></td>
<td><input type=input name=name></td>
<td><input type=input name=name></td>
<td><input type=submit value="submit"></td>
</tr>
</table>
</form>
</body>
</html>
요청을 처리해 주는 wbapi 프로그램(wboccur.c)
#include <stdio.h>
#include <usrinc/wbapi.h>
#include <usrinc/atmi.h>
test(WBSVCINFO *rqst) {
int count;
count = wbKeyOccur(rqst,"name");
wbPutHdr(rqst, "Content-type", "text/html");
wbPrint(rqst, "<HTML><BODY>");
wbPrint(rqst, "<H1>data name is : %d</H1>", count);
wbPrint(rqst, "</body></html>");
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wboccur
Result
요청을 보내는 html
WebtoB WebtoB Reference Manual
TmaxSoft 136
Browser 로 WBAPI service 를 호출하면 다음과 같은 결과가 나온다.
2.3.32 wbGetReqLine
2.3.32.1 Name
wbGetReqLine : Request 에 들어온 Line 의 첫 번째 Line Pointer 를 return 한다.
2.3.32.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
char *wbGetReqLine(WBSVCINFO *rqst)
2.3.32.3 Description
Client 가 서버에 Request 를 보낸 경우 한 Line 에 모든 Request 를 보낼 수도 있지만, 그렇지 않은 경우가 대부분이다. 이 때 Client 가 보낸 Request 의 첫 Line 에 대한 Pointer 를 제공하게 된다. WBAPI 를 이용하여 프로그램 하는 경우, Client 의 Request 를 명확하게 알아야 할 필요가 있을 때 유용하게 이용 할 수 있다.
WebtoB Reference Manual WebtoB
TmaxSoft 137
2.3.32.4 Return Value
Client 가 보낸 Request 의 첫 Line 에 대한 Pointer 를 return 한다.
2.3.32.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wbreqline.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wbreqline SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = wbreqline
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i wbreqline.m
② service table 을 생성한다.
$wsgst
WebtoB WebtoB Reference Manual
TmaxSoft 138
Source
요청을 보내는 html(wbreqline.html)
<html>
<head><title>wbGetReqline</title></head>
<body>
<form method=get action="/svct/test">
<table width=370>
<br>
<h1> input name</h1>
<tr>
<td><input type=input name=name></td>
<td><input type=input name=name></td>
<td><input type=input name=name></td>
<td><input type=submit value="submit"></td>
</tr>
</table>
</form>
</body>
</html>
요청을 처리해 주는 wbapi 프로그램(wbreqline.c)
#include <stdio.h>
#include <usrinc/wbapi.h>
#include <usrinc/atmi.h>
test(WBSVCINFO *rqst) {
char *pointer;
pointer = wbGetReqLine(rqst);
wbPutHdr(rqst, "Content-type", "text/html");
wbPrint(rqst, "<HTML><BODY>");
wbPrint(rqst, "first line : %s", pointer);
wbPrint(rqst, "</body></html>");
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wbreqline
WebtoB Reference Manual WebtoB
TmaxSoft 139
Result
요청을 보내는 html
Browser 로 WBAPI service 를 호출하면 다음과 같은 결과가 나온다.
2.3.33 wbGetRequestURL
2.3.33.1 Name
wbGetRequestURL : Request 된 URL 을 return 한다.
2.3.33.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
char *wbGetRequestURL(WBSVCINFO *rqst)
2.3.33.3 Description
Client 가 서버에 Request 를 보낸 경우 Browser 의 주소창에 입력한 모든 정보를 얻어낸다.
예를 들어 주소창에 “http://www.tmax.co.kr/cgi-bin/tmax.cgi”라고 입력했다면 return 하는 값은 “http://www.tmax.co.kr/cgi-bin/tmax.cgi”이다.
WebtoB WebtoB Reference Manual
TmaxSoft 140
2.3.33.4 Return Value
Client 가 보낸 Request 의 URL 을 return 한다.
2.3.33.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wbrequrl.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wbrequrl SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = wbrequrl
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i wbrequri.m
② service table 을 생성한다.
$wsgst
Source
WebtoB Reference Manual WebtoB
TmaxSoft 141
요청을 보내는 html(wbrequrl.html)
<html>
<head><title>wbGetReqURL</title></head>
<body>
<form method=get action="/svct/test">
<table width=370>
<br>
<h1> input name</h1>
<tr>
<td><input type=input name=name></td>
<td><input type=input name=name></td>
<td><input type=input name=name></td>
<td><input type=submit value="submit"></td>
</tr>
</table>
</form>
</body>
</html>
요청을 처리해 주는 wbapi 프로그램(wbrequrl.c)
#include <stdio.h>
#include <usrinc/wbapi.h>
#include <usrinc/atmi.h>
test(WBSVCINFO *rqst)
{
char *url;
url = wbGetRequestURL(rqst);
wbPutHdr(rqst, "Content-type", "text/html");
wbPrint(rqst, "<HTML><BODY>");
wbPrint(rqst, "Request URL is : %s", url);
wbPrint(rqst, "</body></html>");
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wbrequri
WebtoB WebtoB Reference Manual
TmaxSoft 142
Result
요청을 보내는 html
Browser 로 WBAPI service 를 호출하면 다음과 같은 결과가 나온다.
2.3.34 wbGetFileName
2.3.34.1 Name
wbGetFileName : 파일의 이름을 return 한다.
2.3.34.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
char *wbGetFileName(WBSVCINFO *rqst, char *key)
2.3.34.3 Description
이 함수는 Client 가 보낸 Request 의 Data Field 에서 파일의 이름을 얻을 때 이용된다.
WebtoB Reference Manual WebtoB
TmaxSoft 143
이 때 원하는 파일명을 얻고자 할 때 Key 값을 이용하여 이에 해당하는 파일명을 얻을 수 있다.
2.3.34.4 Return Value
파일의 이름을 return 한다.
2.3.34.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wbfilename.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wbfilename SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = wbfilename
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i wbfilename.m
② service table 을 생성한다.
$wsgst
WebtoB WebtoB Reference Manual
TmaxSoft 144
Source
요청을 보내는 html(wbfilename.html)
<TITLE> wbGetFileName() Test </TITLE>
<BODY>
<H2> wbGetFileName TEST </H2>
<FORM METHOD=post ACTION="/svct/test" enctype='multipart/form-
data'>
<B>FILE UPLOAD</B>
<TABLE WIDTH=650 BGCOLOR=#DDDDDD>
<TR>
<TD><SMALL><B>file</B></SMALL></TD>
<TD><INPUT TYPE=file NAME=upfile SIZE=35></TD>
</TR>
<TR>
<TD><INPUT TYPE=submit VALUE="upload"></TD>
</TR></TABLE>
</FORM>
</BODY>
</HTML>
요청을 처리해 주는 wbapi 프로그램(wbfilename.c)
#include <stdio.h>
#include <usrinc/atmi.h>
#include <usrinc/wbapi.h>
test(WBSVCINFO *rqst)
{
char *filename, *temp;
int k, count;
FILE *fp;
count = wbGetDataCount(rqst);
for(k=1; k<=count; k++)
{
temp = wbGetNthKey(rqst, k);
if((filename=wbGetFileName(rqst, temp)) != NULL)
{
wbPrint(rqst,"filename=%s\n",filename);
}
}
wbReturn(rqst, WBSUCCESS);
WebtoB Reference Manual WebtoB
TmaxSoft 145
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wbfilename
Result
요청을 보내는 html
Browser 로 WBAPI service 를 호출하면 다음과 같은 결과가 나온다.
2.3.34.6 See Also
wbGetFileLen()
WebtoB WebtoB Reference Manual
TmaxSoft 146
2.3.35 wbGetFileLen
2.3.35.1 Name
wbGetFileLen : 파일의 크기를 return 한다.
2.3.35.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
long wbGetFileLen(WBSVCINFO *rqst, char *key)
2.3.35.3 Description
File 의 크기를 얻는다.
이 함수는 Client 가 보낸 Request 의 Data Field 에서 서버로 넘겨 오는 파일 정보에서 파일의 크기를 얻고자 할 때 이용된다.
이 때 크기를 얻고자 하는 파일의 path 가 넘어오게 되는 Key 값을 이용하여 이에 해당하는 파일의 크기를 알아낼 수 있다.
2.3.35.4 Return Value
key 에 해당하는 파일의 크기를 return 한다. 이때 return 하는 값의 단위는 byte 이다.
2.3.35.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wbfilelen.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
WebtoB Reference Manual WebtoB
TmaxSoft 147
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wbfilelen SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = wbfilelen
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i wbfilelen.m
② service table 을 생성한다.
$wsgst
Source
요청을 보내는 html(wbfilelen.html)
<TITLE> wbGetFileLen Test </TITLE>
<BODY>
<H2> wbGetFileName TEST </H2>
<FORM METHOD=post ACTION="/svct/test" enctype='multipart/form-
data'>
<B>FILE UPLOAD</B>
<TABLE WIDTH=650 BGCOLOR=#DDDDDD>
<TR>
<TD><SMALL><B>file</B></SMALL></TD>
<TD><INPUT TYPE=file NAME=upfile SIZE=35></TD>
</TR>
<TR>
<TD><INPUT TYPE=submit VALUE="upload"></TD>
</TR></TABLE>
</FORM>
</BODY>
</HTML>
요청을 처리해 주는 wbapi 프로그램(wbfilelen.c)
WebtoB WebtoB Reference Manual
TmaxSoft 148
#include <stdio.h>
#include <usrinc/atmi.h>
#include <usrinc/wbapi.h>
test(WBSVCINFO *rqst) {
char *temp, *filedata, *filename, path[255];
long filelen;
int k, count, rtn;
FILE *fp;
count = wbGetDataCount(rqst);
for(k=1; k<=count; k++)
{
temp = wbGetNthKey(rqst, k);
if((filename=wbGetFileName(rqst, temp)) != NULL)
{
filelen = wbGetFileLen(rqst, temp);
wbPrint(rqst,"filelength=%ld\n",filelen);
}
}
wbReturn(rqst,WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wbfilelen
Result
요청을 보내는 html
Browser 로 WBAPI service 를 호출하면 다음과 같은 결과가 나온다.
WebtoB Reference Manual WebtoB
TmaxSoft 149
2.3.35.6 See Also
wbGetFileName()
2.4 PUT/SET API 2.4.1 wbPutHdr
2.4.1.1 Name
wbPutHdr : Response 의 Header 를 설정한다.
2.4.1.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
int wbPutHdr(WBSVCINFO *rqst, char *key, char *value)
2.4.1.3 Description
WBAPI 프로그램에서 처리된 후 만들어지는 결과는 Client 에게 전달 되어야 하며, 전달되는 방법은 HTTP Protocol spec 을 따르게 된다. 이때 Client 에게 Response 로 가는 것은 Response Header 와 Response Data 로 구성되며 wbPutHdr()는 Response 의 Header 를 만들어 주는 함수로 Data Field 를 작성하는 함수들 보다 먼저 선언 되어야 한다. 이러한 순서를 지켜 주어야 WBAPI 가 문제없이 수행된다.
2.4.1.4 Return Value
Header 설정이 정상적으로 수행될 경우 wbPutHdr()은 1 을 return 한다. 에러 발생시에는 –1 을 return 한다.
WebtoB WebtoB Reference Manual
TmaxSoft 150
2.4.1.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wbputhdr.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wbputhdr SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = wbputhdr
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i wbputhdr.m
② service table 을 생성한다.
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(wbputhdr.c)
WebtoB Reference Manual WebtoB
TmaxSoft 151
#include <stdio.h>
#include <usrinc/atmi.h>
#include <usrinc/wbapi.h>
test(WBSVCINFO *rqst) {
char *header1;
wbPutHdr(rqst, "Content-Type", "application/octet-stream");
header1 = wbGetHdr(rqst, "Content-Type");
wbPrint(rqst, "Response content-type : %s", header1);
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wbputhdr
Result
Browser 로 WBAPI service 를 호출하면 다음과 같은 결과가 나온다.
2.4.1.6 See Also
wbPutIntHdr()
WebtoB WebtoB Reference Manual
TmaxSoft 152
2.4.2 wbPutIntHdr
2.4.2.1 Name
wbPutIntHdr : Response 의 정수형태의 Header 를 설정한다.
2.4.2.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
int wbPutIntHdr(WBSVCINFO *rqst, char *name, int ivalue)
2.4.2.3 Description
정수형태로 지정된 Header 의 값을 설정하여 Header 를 추가하는 함수로 Data Field 를 작성하는 함수들 보다 먼저 선언 되어야 한다. 이러한 순서를 지켜 주어야 WBAPI 가 문제없이 수행된다.
인수 name 에는 Header 의 이름을 설정하고 ivalue 에는 인수 name 에 지정된 Header 의 정수값을 설정한다.
wbPutIntHdr()는 정수형태가 아닌 Header 에 설정하면 에러를 발생시킨다.
2.4.2.4 Return Value
Header 설정이 정상적으로 수행될 경우 wbPutIntHdr()는 1 을 return 한다. 에러 발생시에는 –1 을 return 한다.
2.4.2.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wbputinthdr.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
WebtoB Reference Manual WebtoB
TmaxSoft 153
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wbputinthdr SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = wbputinthdr
*URI
wbapi Uri = "/svct/", S1vrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i wbputinthdr.m
② service table 을 생성한다.
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(wbputinthdr.c)
#include <stdio.h>
#include <usrinc/atmi.h>
#include <usrinc/wbapi.h>
test(WBSVCINFO *rqst)
{
int header2;
wbPutIntHdr(rqst, "Retry-After", 5000);
header2 = wbGetIntHdr(rqst, "Retry-After");
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wbputinthdr
WebtoB WebtoB Reference Manual
TmaxSoft 154
Result
Telnet 로 WBAPI service 를 호출하면 다음과 같은 결과가 나온다.
$telnet 61.77.153.5 7654
Trying 61.77.153.5...
Connected to 61.77.153.5.
Escape character is '^]'.
GET /svct/test HTTP/1.1
Host: tmaxh1
HTTP/1.1 200 OK
Date: Wed, 31 Oct 2001 07:46:20 GMT
Server: WebtoB/3.0
Retry-After: 5000
Content-Type: text/html
Content-Length: 0
2.4.2.6 See Also
wbPutHdr()
2.4.3 wbSetStatus
2.4.3.1 Name
wbSetStatus : Response 의 Status 값을 설정한다.
2.4.3.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
int wbSetStatus(WBSVCINFO *rqst, int status, char *status_msg)
2.4.3.3 Description
보통 Client 가 요구한 자료를 정상적으로 서버가 전달하게 되면, HTTP Status Code 가 200 OK 로 가게 된다. 만약 Data 가 없는 경우라면 404 Not Found 로 가게 될 것이다. 이러한 일반적인 Status Code 들은 대부분 Web 서버에서 내부적으로 처리하게 되지만, 만약 Location Field 등을 이용하여 자료의 위치를 옮기게 된 경우라면, HTTP Redirect 등의 Status Code 등을 전달하여 줄 수 있다. 이러한 특정 Status Code 값을 설정할 수 있게 하는 함수로 다른 PUT 계열 함수들 보다 먼저
WebtoB Reference Manual WebtoB
TmaxSoft 155
수행되어야한다. 이는 wbSetStatus() 함수로 Response Header 를 먼저 작성하기 위해서이다. 이러한 순서를 지켜 주어야 WBAPI 가 문제없이 수행된다.
인수 status 는 Response 하고자하는 Status Code 를 설정하고, status_msg 는 Status Code 다음에 설정되는 reason 을 사용자가 설정하고자 하는 값으로 변경할 수 있도록 한다. status_msg 의 값을 NULL 로 설정하면 Default 값이 설정된다. wbSetStatus()함수로 특정 Status Code 가 설정될 때에 Client 에게 특정 화면을 보여줄 수 있다.
wbSendError()함수가 기본메시지에 사용자가 설정한 간단한 메시지를 추가로 덧붙이는데 사용된다면 wbSetStatus()함수는 Client 에게 HTML 형식의 메시지를 보여주는데 사용할 수 있다. 즉, wbSetStatus()함수로 Status Code 를 설정한 후 PUT 계열 함수를 이용하여 HTML 형식을 설정하면 Client 에게 설정된 HTML 형식의 출력을 보여줄 수 있게된다.
2.4.3.4 Return Value
함수가 정상적으로 수행될 경우 wbSetStatus()은 1 을 return 한다. 에러 발생시 –1 을 return 한다.
2.4.3.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wbsetstatus.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wbsetstatus SVGNAME = webapg, MinProc = 1, MaxProc = 2,
WebtoB WebtoB Reference Manual
TmaxSoft 156
*SERVICE
test SVRNAME = wbsetstaus
*URI
wbapi Uri = "/svct/", S1vrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i wbfilelen.m
② service table 을 생성한다.
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(wbsetstatus.c)
#include<stdio.h>
#include <usrinc/wbapi.h>
#include <usrinc/atmi.h>
test(WBSVCINFO *rqst)
{
wbSetStatus(rqst, 404, NULL);
wbPrint(rqst, "<HTML><HEAD><TITLE>Not Found</TITLE></HEAD>");
wbPrint(rqst, "<BODY><H1>Sorry, File is not Found!!!</H1>");
wbPrint(rqst, "</BODY></HTML>");
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wbfilelen
Result
Telnet 으로 WBAPI service 를 호출하면 다음과 같은 결과가 나온다.
WebtoB Reference Manual WebtoB
TmaxSoft 157
$telnet 61.77.153.5 7654
Trying 61.77.153.5...
Connected to 61.77.153.5.
Escape character is '^]'.
GET /svct/test HTTP/1.1
Host: tmaxh1
HTTP/1.1 404
Date: Wed, 31 Oct 2001 07:58:40 GMT
Server: WebtoB/3.0
Content-Type: text/html
Content-Length: 99
<HTML><HEAD><TITLE>Not Found</TITLE></HEAD><BODY><H1>Sorry, File
is not Found!!!</H1></BODY></HTML>
2.4.3.6 See Also
wbSendError()
2.4.4 wbPutStr
2.4.4.1 Name
wbPutStr : String 값을 출력한다.
2.4.4.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
int wbPutStr(WBSVCINFO *rqst, char *value)
2.4.4.3 Description
사용자가 요구한 사항에 대한 처리를 끝낸 후 이를 출력하는 함수이다. 단, Data 를 출력하는 단위가 String 라는 것에 주의하여야 한다.
2.4.4.4 Return Value
함수가 정상적으로 수행될 경우 wbPutStr()은 1 을 return 한다. 에러 발생시 –1 을 return 한다.
2.4.4.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wbputstr.m)
*DOMAIN
WebtoB WebtoB Reference Manual
TmaxSoft 158
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wbputstr SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = wbputstr
*URI
wbapi Uri = "/svct/", S1vrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i wbputstr.m
② service table 을 생성한다.
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(wbputstr.c)
#include<stdio.h>
#include <usrinc/wbapi.h>
#include <usrinc/atmi.h>
test(WBSVCINFO *rqst)
{
WebtoB Reference Manual WebtoB
TmaxSoft 159
wbPutStr(rqst, "this wbPutStr() test!!<br>");
wbPutStr(rqst, "this wbPutStr() test!!<br>");
wbPutStr(rqst, "this wbPutStr() test!!\n");
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wbputstr
Result
Browser 로 WBAPI service 를 호출하면 다음과 같은 결과가 나온다.
2.4.4.6 See Also
wbPut(), wbPrint()
2.4.5 wbPut
2.4.5.1 Name
wbPut : 특정 Size 만큼의 Data 를 출력한다.
2.4.5.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
int wbPut(WBSVCINFO *rqst, char *value, int len)
WebtoB WebtoB Reference Manual
TmaxSoft 160
2.4.5.3 Description
wbPutStr() 함수와 거의 같은 기능을 하지만 Data 를 출력하는 단위가 String 이 아니고, 함수의 인자로 주어지는 len 의 크기 만큼 출력 된다.
2.4.5.4 Return Value
함수가 정상적으로 수행될 경우 wbPut()은 1 을 return 한다. 에러 발생시 –1 을 return 한다.
2.4.5.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wbput.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wbput SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = wbput
*URI
wbapi Uri = "/svct/", S1vrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i wbput.m
WebtoB Reference Manual WebtoB
TmaxSoft 161
② service table 을 생성한다.
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(wbput.c)
#include <stdio.h>
#include <usrinc/wbapi.h>
#include <usrinc/atmi.h>
test(WBSVCINFO *rqst)
{
wbPut(rqst, "this wbPut() test!!", 19);
wbPut(rqst, "this wbPut() test!!",10);
wbPut(rqst, "this wbPut() test!!", 5);
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wbput
Result
Browser 로 WBAPI service 를 호출하면 다음과 같은 결과가 나온다.
2.4.5.6 See Also
wbPutStr(), wbPrint()
WebtoB WebtoB Reference Manual
TmaxSoft 162
2.4.6 wbPrint
2.4.6.1 Name
wbPrint : 사용자가 지정한 내용을 출력한다.
2.4.6.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
int wbPrint(WBSVCINFO *rqst, const char * fmt, …..)
2.4.6.3 Description
이 함수는 C-Language 의 printf() 함수를 연상하면 쉽게 이해 할 수 있다. 이 wbPrint()함수는 C-Language 로 프로그램을 작성하던 사람들에게 가장 익숙한 함수인 printf() 함수를 대치하기 위해 만들어진 것이다. 따라서 함수의 Synopsis 도 printf() 함수와 같다. 즉 ” “ 안에 원하는 문장을 넣고, 이 곳에 %s, %d, %f 등의 인자들을 넣고 이에 해당하는 변수를 적어 넣어서 출력을 한다. 또한, 개행 문자 등도 그대로 사용 가능하며, 기존 C-Language 로 만들어진, printf() 함수를 그대로 이름만 바꾸어 사용할 수 있다.
2.4.6.4 Return Value
함수가 정상적으로 수행될 경우 wbPrint()은 1 을 return 한다. 에러 발생시 –1 을 return 한다.
2.4.6.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wbprint.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
WebtoB Reference Manual WebtoB
TmaxSoft 163
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wbprint SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = wbprint
*URI
wbapi Uri = "/svct/", S1vrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i wbprint.m
② service table 을 생성한다.
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(wbprint.c)
#include <stdio.h>
#include <usrinc/wbapi.h>
#include <usrinc/atmi.h>
test(WBSVCINFO *rqst) {
wbPrint(rqst, "<HTML>\n");
wbPrint(rqst, "<BODY>\n");
wbPrint(rqst, "Input QueryString :<INPUT TYPE = text NAME=query
VALUE=\"\">");
wbPrint(rqst, "<INPUT TYPE = submit VALUE=\"submit\">\n");
wbPrint(rqst, "<H1>srting : %s</h1><br>","example");
wbPrint(rqst, "<H1>character : %c</h1><br>",'e');
wbPrint(rqst, "<H1>inteter : %d</h1><br>",100);
wbPrint(rqst, "</FORM>\n");
wbPrint(rqst, "</BODY>\n");
wbPrint(rqst, "</HTML>\n");
wbReturn(rqst, WBSUCCESS);
}
WebtoB WebtoB Reference Manual
TmaxSoft 164
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wbprint
Result
Browser 로 WBAPI service 를 호출하면 다음과 같은 결과가 나온다.
2.4.6.6 See Also
wbPutStr(), wbPut()
2.4.7 wbPutFile
2.4.7.1 Name
wbPutFile : File Download 를 위한 함수로, 특정 파일을 읽어 들여 모두 Browser 로 보내준다.
2.4.7.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
int wbPutFile(WBSVCINFO *rqst, char *path)
2.4.7.3 Description
Client 가 Sever 에 요구를 보낸 경우, 이에 대한 응답으로 서버가 특정한 파일을 전송하는 것이 있을 수 있다. 특히 Web 상에서 자료를 공유하고자 할 때 이러한 기능이 더욱 필요하게 된다. WebtoB 에서는 이런 기능을 위하여 wbPutFile() 이란 함수를 제공하는데, 특정 Physical Path 를 지정하여 이 곳에 존재하는 파일을 Client 에게 전송한다.
WebtoB Reference Manual WebtoB
TmaxSoft 165
2.4.7.4 Return Value
함수가 정상적으로 수행될 경우 wbPutFile()은 1 을 return 한다. 에러 발생시 –1 을 return 한다.
2.4.7.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wbputfile.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wbputfile SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = wbputfile
*URI
wbapi Uri = "/svct/", S1vrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i wbputfile.m
② service table 을 생성한다.
$wsgst
WebtoB WebtoB Reference Manual
TmaxSoft 166
Source
요청을 보내는 html 파일(putfile.html)
<html>
<head><title> wbPutFile test </title></head>
<body>
<H2>wbPutFile</H2>
<form action= "/svct/test" method=post>
<input type= submit value=" Download ">
</form>
</body>
</html>
요청을 처리해 주는 wbapi 프로그램(putfile.c)
#include<stdio.h>
#include <usrinc/wbapi.h>
#include <usrinc/atmi.h>
test(WBSVCINFO *rqst)
{
char line[50];
memset(line, 0x00, sizeof(line));
wbPutHdr(rqst, "content-type", "application/octet-stream");
sprintf(line, "attachment; filename=%s", "session.c");
wbPutHdr(rqst, "content-disposition", line);
wbPutFile(rqst, "/user2/haninho/webtob/session.c");
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wbputfile
Result
요청을 보내는 html
WebtoB Reference Manual WebtoB
TmaxSoft 167
Browser 로 WBAPI service 를 요청하면 DownLoad 위치를 결정하는 창이 뜬다.
DownLoad 경로를 지정하는 창이 뜬다.
지정된 경로에 파일이 DownLoad 된다.
2.4.7.6 See Also
wbPutPartialFile()
2.4.8 wbPutPartialFile
2.4.8.1 Name
wbPutPartialFile : File Download 를 위한 함수로 특정 파일의 '일부분'을 읽어서 Browser 로 보내준 File 의 offset 부터 size 만큼을 읽어 들여 보내준다. size 가 0 이면 파일 끝까지 읽어 보내준다.
WebtoB WebtoB Reference Manual
TmaxSoft 168
2.4.8.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
int wbPutPartialFile(WBSVCINFO *rqst,char *path,int offset,int
sz)
2.4.8.3 Description
앞에서 설명한 wbPutFile() 함수와 같은 기능을 한다고 생각하면 된다. 단, 이 함수는 특정 파일의 일부분을 전송하는데 이용한다. 만약 Client 가 파일을 전송 받다가 Network 의 불안정 등의 상황으로 인하여 접속이 끊겨서 차후에 다시 전송을 받으려 할 때 처음부터 다시 시작하는 것 보다는 이미 전송 받은 것 이후의 Data 를 전송하는 것이 훨씬 경제적이고 빠를 것이다. 이런 경우에 이 함수를 이용하면 된다.
2.4.8.4 Return Value
함수가 정상적으로 수행될 경우 wbPutPartialFile()은 1 을 return 한다. 에러 발생시 –1 을 return 한다.
2.4.8.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(wbpartial.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
wbpartial SVGNAME = webapg, MinProc = 1, MaxProc = 2,
WebtoB Reference Manual WebtoB
TmaxSoft 169
*SERVICE
test SVRNAME = wbpartial
*URI
wbapi Uri = "/svct/", S1vrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i wbpartial.m
② service table 을 생성한다.
$wsgst
Source
요청을 보내는 html 파일(wbpartial.html)
<html>
<head><title> wbPutPartialFile test </title></head>
<body>
<H2>wbPutPartialFile</H2>
<form action= "/svct/test" method=post>
<input type= submit value=" Download ">
</form>
</body>
</html>
요청을 처리해 주는 wbapi 프로그램(wbpartial.c)
#include<stdio.h>
#include <usrinc/wbapi.h>
#include <usrinc/atmi.h>
test(WBSVCINFO *rqst) {
char line[50];
memset(line, 0x00, sizeof(line));
wbPutHdr(rqst, "content-type", "application/octet-stream");
sprintf(line, "attachment; filename=%s", "session.c");
wbPutHdr(rqst, "content-disposition", line);
WebtoB WebtoB Reference Manual
TmaxSoft 170
wbPutPartialFile(rqst, "/user2/haninho/webtob/session.c",100,
100);
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c wbpartial
Result
요청을 보내는 html
Browser 로 WBAPI service 를 요청하면 DownLoad 위치를 결정하는 창이 뜬다.
DownLoad 경로를 지정하는 창이 뜬다.
저장후 원하는 size 만큼만 DownLoad 되었다면 정상.
WebtoB Reference Manual WebtoB
TmaxSoft 171
2.4.8.6 See Also
wbPutFile()
2.5 COOKIE API 2.5.1 wbCreateCookie
2.5.1.1 Name
wbCreateCookie : 새로운 Cookie 를 생성한다.
2.5.1.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
cookie_t* wbCreateCookie(WBSVCINFO *rqst, char *name, char
*value)
2.5.1.3 Description
초기의 이름과 값을 사용하여 새로운 Cookie 를 생성한다. 유효한 이름과 값에 대한 규칙은 넷스케이프 Cookie 명세와 RFC 2019 를 참조.
2.5.1.4 Return Value
wbCreateCookie()는 생성된 Cookie 의 포인터를 return 한다
2.5.1.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(createcookie.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
WebtoB WebtoB Reference Manual
TmaxSoft 172
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
createcookie SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = createcookie
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i createcookie.m
② service table 을 생성한다.
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(createcookie.c)
#include <stdio.h>
#include <string.h>
#include "../usrinc/atmi.h"
#include "../usrinc/wbapi.h"
test(WBSVCINFO *rqst) {
char *name, *value;
cookie_t *cookie;
cookie = wbCreateCookie(rqst, "name", "tmaxsoft");
name = wbCookieGetName(rqst, cookie);
wbPrint(rqst, "cookie name = %s\n<br>", name);
value = wbCookieGetValue(rqst, cookie);
wbPrint(rqst, "cookie value = %s\n<br>", value);
wbReturn(rqst, WBSUCCESS);
}
WebtoB Reference Manual WebtoB
TmaxSoft 173
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c createcookie
Result
Browser 로 WBAPI service 를 요청하면 다음과 같은 결과가 나온다.
2.5.2 wbGetCookie
2.5.2.1 Name
wbGetCookie : Browser 에 의해 보내진 Cookie 중에서 원하는 Cookie 를 return 한다.
2.5.2.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
cookie_t *wbGetCookie(WBSVCINFO *rqst, char *name)
2.5.2.3 Description
요청의 일부로 Browser 에 의해 보내진 Cookie 중에서 name 에 해당하는 Cookie 의 포인터를 return 하는 함수이다. 만약 설정한 name 에 해당하는 Cookie 가 존재하지 않는다면 NULL 을 return 한다.
name 은 Cookie 들 중에서 사용자가 원하는 Cookie 를 찾아내기 위해 설정 하는 값이다.
WebtoB WebtoB Reference Manual
TmaxSoft 174
2.5.2.4 Return Value
요청의 일부로 Browser 에 의해 보내진 Cookie 중에서 name 에 해당하는 Cookie 의 포인터를 return 한다. 만약 Browser 로부터 name 에 해당하는 Cookie 가 보내지지 않는다면 NULL 을 return 한다.
2.5.2.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(getcookie.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
getcookie SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = getcookie
test2 SVRNAME = getcookie
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i getcookie.m
② service table 을 생성한다.
$wsgst
WebtoB Reference Manual WebtoB
TmaxSoft 175
Source
요청을 처리해 주는 wbapi 프로그램(getcookie.c)
#include <stdio.h>
#include "../usrinc/atmi.h"
#include "../usrinc/wbapi.h"
test(WBSVCINFO *rqst)
{
cookie_t *cookie;
int ver;
cookie = wbCreateCookie(rqst, "name", "tmaxsoft");
ver = wbPutCookie(rqst, cookie);
wbPrint(rqst, "<html><body>\n");
wbPrint(rqst, "<form method=post action=/svct/test2>\n");
wbPrint(rqst, "wbGetCookie test \n<br>");
wbPrint(rqst, "create cookie \n<br>");
wbPrint(rqst, "<input type=submit value=submit>");
wbPrint(rqst, "</form>");
wbPrint(rqst, "</body></html>\n");
wbReturn(rqst, WBSUCCESS);
}
test2(WBSVCINFO *rqst) {
cookie_t *cookie;
char *name, *value;
cookie = wbGetCookie(rqst, "name");
wbPrint(rqst, "<html><body>\n");
wbPrint(rqst, "wbGetCookie test \n<br>");
name = wbCookieGetName(rqst, cookie);
wbPrint(rqst, "cookie name = %s\n<br>", name);
value = wbCookieGetValue(rqst, cookie);
wbPrint(rqst, "cookie value = %s\n<br>", value);
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c getcookie
WebtoB WebtoB Reference Manual
TmaxSoft 176
Result
Browser 로 WBAPI service 를 요청하면 다음과 같은 결과가 나온다.
Submit 버튼을 클릭하면 wbapi service test2 를 호출하며 wbGetCookie 의 결과를 보여준다.
2.5.2.6 See Also
wbPutCookie()
2.5.3 wbPutCookie
2.5.3.1 Name
wbPutCookie : 지정된 Cookie 에 응답을 덧붙인다.
2.5.3.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
int wbPutCookie(WBSVCINFO *rqst, cookie_t *cookie)
WebtoB Reference Manual WebtoB
TmaxSoft 177
2.5.3.3 Description
지정된 Cookie 에 응답을 덧붙인다. 부가적인 Cookie 는 여러 번 wbPutCookie()가 호출함으로써 덧붙여질 수 있다. Cookie 가 HTTP Header 를 이용하여 전송되기 때문에, Cookie 는 어떠한 내용을 전송하기 이전에 응답에 덧붙여져야 한다.
2.5.3.4 Return Value
정상적으로 수행될 경우 wbPutCookie()는 1 을 return 한다. 에러 발생시에는 0 을 return 한다.
2.5.3.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(putcookie.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
putcookie SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = putcookie
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
WebtoB WebtoB Reference Manual
TmaxSoft 178
$wscfl –i putcookie.m
② service table 을 생성한다.
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(putcookie.c)
#include <stdio.h>
#include "../usrinc/atmi.h"
#include "../usrinc/wbapi.h"
test(WBSVCINFO *rqst)
{
cookie_t *cookie;
cookie_t *cookie1;
int ver;
cookie = wbCreateCookie(rqst, "name", "tmaxsoft");
ver = wbPutCookie(rqst, cookie);
cookie1 = wbCreateCookie(rqst, "id", "xxxxxxx");
ver = wbPutCookie(rqst, cookie1);
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c putcookie
Result
telent 로 WBAPI service 를 요청하면 다음과 같은 결과가 나온다.
HTTP/1.1 200 OK
Date: Thu, 01 Nov 2001 01:47:04 GMT
Server: WebtoB/3.0
Set-Cookie: name=tmaxsoft
Set-Cookie: id=xxxxxxx
Content-Type: text/html
Content-Length: 0
WebtoB Reference Manual WebtoB
TmaxSoft 179
2.5.3.6 See Also
wbGetCookie()
2.5.4 wbCookieGetDomain
2.5.4.1 Name
wbCookieGetDomain : 지정된 Cookie 에서 도메인을 return 한다.
2.5.4.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
char * wbCookieGetDomain(WBSVCINFO *rqst, cookie_t *cookie)
2.5.4.3 Description
도메인 패턴을 얻어낸다. 도메인 패턴은 Cookie 가 유효한 서버이다. 기본적으로 Cookie 들은 Cookie 를 저장하고 있는 호스트에 전달된다. 도메인 이름 패턴을 기술할 때 이것을 오버라이드 한다. 패턴은 점(dot)으로 시작하고, 최소한 두개의 점(dot)을 포함해야 한다.
도메인 패턴에 대한 상세한 정보는 RFC 2109 를 참조.
2.5.4.4 Return Value
wbCookieGetDomain()은 Cookie 에 지정된 패턴을 return 한다. 도메인이 지정되어 있지 않다면 NULL 을 return 한다.
2.5.4.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(getdomain.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
WebtoB WebtoB Reference Manual
TmaxSoft 180
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
getdomain SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = getdomain
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i getdomain.m
② service table 을 생성한다.
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(getdomain.c)
#include <stdio.h>
#include "../usrinc/atmi.h"
#include "../usrinc/wbapi.h"
test(WBSVCINFO *rqst) {
cookie_t *cookie;
int ver;
char *domain;
cookie = wbCreateCookie(rqst, "name", "tmaxsoft");
wbCookieSetDomain(rqst, cookie, ".tmax.co.kr");
ver = wbPutCookie(rqst, cookie);
domain = wbCookieGetDomain(rqst, cookie);
wbPrint(rqst, "<h2>Domain = %s</h2>", domain);
wbCookieGetDomain(rqst, cookie);
wbReturn(rqst, WBSUCCESS);
}
WebtoB Reference Manual WebtoB
TmaxSoft 181
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c getdomain
Result
Browser 로 WBAPI service 를 요청하면 다음과 같은 결과가 나온다.
2.5.4.6 See Also
wbCookieGetName(), wbCookieGetPath(), wbCookieGetValue(), wbCookieGetVersion()
2.5.5 wbCookieGetName
2.5.5.1 Name
wbCookieGetName : 지정된 Cookie 의 Name 을 return 한다.
2.5.5.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
char * wbCookieGetName(WBSVCINFO *rqst, cookie_t *cookie)
2.5.5.3 Description
모든 Cookie 는 유효한 이름과 값을 가지고 있다. wbCookieGetName()는 이런 Cookie 의 이름을 알아낼수 있다.
Cookie 의 유효한 이름에 대한 상세한 정보는 RFC 2109 를 참조.
WebtoB WebtoB Reference Manual
TmaxSoft 182
2.5.5.4 Return Value
wbCookieGetName()은 Cookie 의 이름을 return 한다. 만약 이 Cookie 가 유효한 Cookie 가 아니라면 NULL 을 return 한다.
2.5.5.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(getname.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
getname SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = getname
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i getname.m
② service table 을 생성한다.
$wsgst
WebtoB Reference Manual WebtoB
TmaxSoft 183
Source
요청을 처리해 주는 wbapi 프로그램(getname.c)
#include <stdio.h>
#include <string.h>
#include "../usrinc/atmi.h"
#include "../usrinc/wbapi.h"
test(WBSVCINFO *rqst)
{
char *name, *value;
cookie_t *cookie;
cookie = wbCreateCookie(rqst, "name", "tmaxsoft");
name = wbCookieGetName(rqst, cookie);
wbPrint(rqst, "cookie name = %s\n<br>", name);
value = wbCookieGetValue(rqst, cookie);
wbPrint(rqst, "cookie value = %s\n<br>", value);
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c getname
Result
Browser 로 WBAPI service 를 요청하면 다음과 같은 결과가 나온다.
2.5.5.6 See Also
wbCookieGetDomain(), wbCookieGetPath(), wbCookieGetValue(), wbCookieGetVersion()
WebtoB WebtoB Reference Manual
TmaxSoft 184
2.5.6 wbCookieGetPath
2.5.6.1 Name
wbCookieGetPath : Cookie 의 경로를 return 한다.
2.5.6.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
char* wbCookieGetPath(WBSVCINFO *rqst, cookie_t *cookie)
2.5.6.3 Description
Cookie 의 경로를 얻어낸다. 얻어내는 값은 Cookie 가 설정된 URI 의 일부분이다. 기본적으로, Cookie 는 Cookie 를 설정한 페이지 그리고 디렉토리하의 모든 페이지에 전송된다.
2.5.6.4 Return Value
wbCookieGetPath()은 Cookie 의 경로를 return 한다. Path 가 지정되어 있지 않다면 NULL 을 return 한다.
2.5.6.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(path.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
path SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
WebtoB Reference Manual WebtoB
TmaxSoft 185
test SVRNAME = path
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i path.m
② service table 을 생성한다.
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(path.c)
#include <stdio.h>
#include "../usrinc/atmi.h"
#include "../usrinc/wbapi.h"
test(WBSVCINFO *rqst)
{
cookie_t *cookie;
char *path;
int ver;
cookie = wbCreateCookie(rqst, "name", "tmaxsoft");
wbCookieSetPath(rqst, cookie,"/user2/HanInho/webtob" );
ver = wbPutCookie(rqst, cookie);
path = wbCookieGetPath(rqst, cookie);
wbPrint(rqst, "<h2>Path = %s</h2>", path);
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c path
WebtoB WebtoB Reference Manual
TmaxSoft 186
Result
Browser 로 WBAPI service 를 요청하면 다음과 같은 결과가 나온다.
2.5.6.6 See Also
wbCookieGetName(), wbCookieGetDomain(), wbCookieGetValue(), wbCookieGetVersion()
2.5.7 wbCookieGetValue
2.5.7.1 Name
wbCookieGetValue : Cookie 의 값을 return 한다.
2.5.7.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
char* wbCookieGetValue(WBSVCINFO *rqst, cookie_t *cookie)
2.5.7.3 Description
Cookie 에 설정된 값을 얻어낸다. Cookie 를 처음 생성할때는 Cookie 의 유효한 이름과 값으로 Cookie 를 생성하는데 wbCookieGetValue()는 이때 저장된 값을 얻어낸다.
2.5.7.4 Return Value
wbCookieGetValue()는 Cookie 의 값을 return 한다.
2.5.7.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(value.m)
*DOMAIN
webtob1
WebtoB Reference Manual WebtoB
TmaxSoft 187
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
value SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = value
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i value.m
② service table 을 생성한다.
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(value.c)
#include <stdio.h>
#include "../usrinc/atmi.h"
#include "../usrinc/wbapi.h"
test(WBSVCINFO *rqst)
{
cookie_t *cookie;
int ver;
WebtoB WebtoB Reference Manual
TmaxSoft 188
char *value;
cookie = wbCreateCookie(rqst, "name", "tmaxsoft");
value = wbCookieGetValue(rqst, cookie);
wbPrint(rqst, "<h2>old value = %s</h2>", value);
ver = wbPutCookie(rqst, cookie);
wbCookieSetValue(rqst, cookie,"webtob");
value = wbCookieGetValue(rqst, cookie);
wbPrint(rqst, "<h2>new value = %s</h2>", value);
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c value
Result
Browser 로 WBAPI service 를 요청하면 다음과 같은 결과가 나온다.
2.5.7.6 See Also
wbCookieGetName(), wbCookieGetPath(), wbCookieGetDomain(), wbCookieGetVersion()
2.5.8 wbCookieGetVersion
2.5.8.1 Name
wbCookieGetVersion : Cookie 의 버전을 return 한다.
2.5.8.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
int wbCookieGetVersion(WBSVCINFO *rqst, cookie_t *cookie)
WebtoB Reference Manual WebtoB
TmaxSoft 189
2.5.8.3 Description
Cookie 에 설정된 버전을 얻어낸다.
2.5.8.4 Return Value
wbCookieGetVersion()는 Cookie 의 버전을 return 한다. 만약 버전이 설정되어 있지 않았다면 버전의 Default 값인 0 이 return 된다.
2.5.8.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(version.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
version SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = version
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i version.m
WebtoB WebtoB Reference Manual
TmaxSoft 190
② service table 을 생성한다.
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(version.c)
#include <stdio.h>
#include "../usrinc/atmi.h"
#include "../usrinc/wbapi.h"
test(WBSVCINFO *rqst){
cookie_t *cookie;
int ver;
int version;
cookie = wbCreateCookie(rqst, "name", "tmaxsoft");
version = wbCookieGetVersion(rqst, cookie);
wbPrint(rqst, "<h2>old version = %d</h2>", version);
ver = wbPutCookie(rqst, cookie);
wbCookieSetVersion(rqst, cookie,1);
version = wbCookieGetVersion(rqst, cookie);
wbPrint(rqst, "<h2>new version = %d</h2>", version);
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c version
Result
Browser 로 WBAPI service 를 요청하면 다음과 같은 결과가 나온다.
WebtoB Reference Manual WebtoB
TmaxSoft 191
2.5.8.6 See Also
wbCookieGetName(), wbCookieGetPath(), wbCookieGetValue(), wbCookieGetDomain()
2.5.9 wbCookieSetComment
2.5.9.1 Name
wbCookieSetComment : Cookie 의 주석 필드를 설정한다.
2.5.9.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
int wbCookieSetComment(WBSVCINFO *rqst, cookie_t *cookie, char
*comment)
2.5.9.3 Description
Cookie 의 주석 필드를 설정한다. Comment 는 Cookie 의 원래 목적을 설명한다. Web Browser 는 이 문자열을 사용자에게 보여 줄 수도 있다. Comment 는 버전 0 의 Cookie 에서는 지원되지 않는다.
2.5.9.4 Return Value
wbCookieSetComment()호출 성공시 1 을 실패한 경우에는 –1 을 return 한다.
2.5.9.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(comment.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
WebtoB WebtoB Reference Manual
TmaxSoft 192
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
comment SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = comment
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i comment.m
② service table 을 생성한다.
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(comment.c)
#include <stdio.h>
#include "../usrinc/atmi.h"
#include "../usrinc/wbapi.h"
test(WBSVCINFO *rqst)
{
cookie_t *cookie;
int ver;
cookie = wbCreateCookie(rqst, "name", "tmaxsoft");
ver = wbPutCookie(rqst, cookie);
wbCookieSetComment(rqst, cookie,"example");
wbPrint(rqst, "<h2>comment is = %s</h2>", cookie-
>comment);
wbReturn(rqst, WBSUCCESS);
}
WebtoB Reference Manual WebtoB
TmaxSoft 193
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c comment
Result
Browser 로 WBAPI service 를 요청하면 다음과 같은 결과가 나온다.
2.5.9.6 See Also
wbCookieSetName(), wbCookieSetPath(), wbCookieSetValue(), wbCookieSetVersion(), wbCookieSetDomain(),wbCookieSetMaxAge(), wbCookieSetSecure()
2.5.10 wbCookieSetDomain
2.5.10.1 Name
wbCookieSetDomain : Cookie 의 Domain 을 설정한다.
2.5.10.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
int wbCookieSetComment(WBSVCINFO *rqst, cookie_t *cookie, char
*domain)
2.5.10.3 Description
도메인을 한정짓는 패턴을 설정한다. 도메인 패턴은 Cookie 를 보내야 하는 서버를 명확히 결정한다. Default 값으로 Cookie 는 자신이 저장된 호스트에게로만 returne 된다. 도메인 이름 패턴을 정하기 위해서는 이것을 오버라이드 해야한다. 패턴은 반드시 점(dot)으로 시작해야 하고 적어도 두 개이상의 점(dot)을 포함해야 한다.
WebtoB WebtoB Reference Manual
TmaxSoft 194
2.5.10.4 Return Value
wbCookieSetDomain()호출 성공시 1 을 실패한 경우에는 –1 을 return 한다.
2.5.10.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(setdomain.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
setdomain SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = setdomain
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i setdomain.m
② service table 을 생성한다.
$wsgst
WebtoB Reference Manual WebtoB
TmaxSoft 195
Source
요청을 처리해 주는 wbapi 프로그램(setdomain.c)
#include <stdio.h>
#include "../usrinc/atmi.h"
#include "../usrinc/wbapi.h"
test(WBSVCINFO *rqst)
{
cookie_t *cookie;
int ver;
char *domain;
cookie = wbCreateCookie(rqst, "name", "tmaxsoft");
wbCookieSetDomain(rqst, cookie, ".tmax.co.kr");
ver = wbPutCookie(rqst, cookie);
domain = wbCookieGetDomain(rqst, cookie);
wbPrint(rqst, "<h2>Domain = %s</h2>", domain);
wbCookieGetDomain(rqst, cookie);
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c setdomain
Result
Browser 로 WBAPI service 를 요청하면 다음과 같은 결과가 나온다.
WebtoB WebtoB Reference Manual
TmaxSoft 196
2.5.10.6 See Also
wbCookieSetName(), wbCookieSetPath(), wbCookieSetValue(), wbCookieSetVersion(), wbCookieSetComment(), wbCookieSetMaxAge(), wbCookieSetSecure()
2.5.11 wbCookieSetMaxAge
2.5.11.1 Name
wbCookieSetMaxAge : Cookie 의 수명 시간을 설정한다.
2.5.11.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
int wbCookieSetMaxAge(WBSVCINFO *rqst, cookie_t *cookie, int
maxage)
2.5.11.3 Description
Cookie 가 종료되기에 앞서 초(sec)단위로 Cookie 의 최대 수명시간을 설정한다. 음수 값은 Cookie 가 Browser 가 종료되는 즉시 소멸되어야 함을 의미한다. 0 값은 브라우져가 Cookie 를 즉각적으로 삭제할 것을 지정한다. Default 값은 –1 이다.
2.5.11.4 Return Value
wbCookieSetMaxAge()호출 성공시 1 을 실패한 경우에는 –1 을 return 한다.
2.5.11.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(maxage.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
WebtoB Reference Manual WebtoB
TmaxSoft 197
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
maxage SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = maxage
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i maxage.m
② service table 을 생성한다.
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(maxage.c)
#include <stdio.h>
#include "../usrinc/atmi.h"
#include "../usrinc/wbapi.h"
test(WBSVCINFO *rqst) {
cookie_t *cookie;
int ver;
cookie = wbCreateCookie(rqst, "name", "tmaxsoft");
wbCookieSetMaxAge(rqst, cookie,60 );
ver = wbPutCookie(rqst, cookie);
wbPrint(rqst, "<h2>Maxage = %d</h2>", cookie->maxage);
wbReturn(rqst, WBSUCCESS);
}
WebtoB WebtoB Reference Manual
TmaxSoft 198
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c maxage
Result
Browser 로 WBAPI service 를 요청하면 다음과 같은 결과가 나온다.
2.5.11.6 See Also
wbCookieSetName(), wbCookieSetPath(), wbCookieSetValue(), wbCookieSetVersion(), wbCookieSetDomain(), wbCookieSetComment(), wbCookieSetSecure()
2.5.12 wbCookieSetPath
2.5.12.1 Name
wbCookieSetPath : Cookie 를 위한 경로를 설정한다.
2.5.12.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
int wbCookieSetPath(WBSVCINFO *rqst, cookie_t *cookie, char
*path)
2.5.12.3 Description
Cookie 를 위한 경로를 표시한다. 이는 Cookie 가 전송되어야 할 RUI 의 일부이다. 만약 /user/han 으로 Cookie 를 설정한다면 기본적인 경로는 /user 이 된다. 이경로는 /user/aaa 또는 /user/bbb 에게도 Cookie 가 전송 되어야만 한다는 것을 표시한다.
WebtoB Reference Manual WebtoB
TmaxSoft 199
2.5.12.4 Return Value
wbCookieSetPath()호출 성공시 1 을 실패한 경우에는 –1 을 return 한다.
2.5.12.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(setpath.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
setpath SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = setpath
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i setpath.m
② service table 을 생성한다.
$wsgst
WebtoB WebtoB Reference Manual
TmaxSoft 200
Source
요청을 처리해 주는 wbapi 프로그램(maxage.c)
#include <stdio.h>
#include "../usrinc/atmi.h"
#include "../usrinc/wbapi.h"
test(WBSVCINFO *rqst) {
cookie_t *cookie;
char *path;
int ver;
cookie = wbCreateCookie(rqst, "name", "tmaxsoft");
wbCookieSetPath(rqst, cookie,"/user2/HanInho/webtob" );
ver = wbPutCookie(rqst, cookie);
path = wbCookieGetPath(rqst, cookie);
wbPrint(rqst, "<h2>Path = %s</h2>", path);
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c setpath
Result
Browser 로 WBAPI service 를 요청하면 다음과 같은 결과가 나온다.
2.5.12.6 See Also
wbCookieSetName(), wbCookieSetComment(), wbCookieSetValue(), wbCookieSetVersion(), wbCookieSetDomain(), wbCookieSetMaxAge(), wbCookieSetSecure()
WebtoB Reference Manual WebtoB
TmaxSoft 201
2.5.13 wbCookieSetSecure
2.5.13.1 Name
wbCookieSetSecure : Cookie 가 SSL 과 같이 보호되는 프로토콜에서 전송되어야 하는지를 설정.
2.5.13.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
int wbCookieSetSecure(WBSVCINFO *rqst, cookie_t *cookie, int
secure)
2.5.13.3 Description
Cookie 가 SSL 과 같이 보호되는 프로토콜상에서만 전송되어야 하는지의 여부를 설정 한다. Default 값은 0 으로 보호되지 않는 프로토콜에서도 Cookie 사용이 가능하다.
2.5.13.4 Return Value
wbCookieSetSecure()호출 성공시 1 을 실패한 경우에는 –1 을 return 한다.
2.5.13.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(secure.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
secure SVGNAME = webapg, MinProc = 1, MaxProc = 2,
WebtoB WebtoB Reference Manual
TmaxSoft 202
*SERVICE
test SVRNAME = secure
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i secure.m
② service table 을 생성한다.
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(secure.c)
#include <stdio.h>
#include "../usrinc/atmi.h"
#include "../usrinc/wbapi.h"
test(WBSVCINFO *rqst) {
cookie_t *cookie;
int ver, sec;
cookie = wbCreateCookie(rqst, "name", "tmaxsoft");
wbCookieSetSecure(rqst, cookie,1 );
ver = wbPutCookie(rqst, cookie);
wbPrint(rqst, "<h2>Secure = %d</h2>", cookie->secure);
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c secure
Result
Browser 로 WBAPI service 를 요청하면 다음과 같은 결과가 나온다.
WebtoB Reference Manual WebtoB
TmaxSoft 203
2.5.13.6 See Also
wbCookieSetName(), wbCookieSetPath(), wbCookieSetValue(), wbCookieSetVersion(), wbCookieSetDomain(), wbCookieSetMaxAge(), wbCookieSetComment()
2.5.14 wbCookieSetValue
2.5.14.1 Name
wbCookieSetValue : Cookie 에 새로운 값을 설정한다.
2.5.14.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
int wbCookieSetValue(WBSVCINFO *rqst, cookie_t *cookie, char
*value)
2.5.14.3 Description
Cookie 에 새로운 값을 할당한다. Version 이 0 인 Cookie 에서 Cookie 값은 공백, bracket, 그리고 괄호, 등호 기호, 콤마, 이중 인용, 슬래시, 질문 기호, 부호, 세미콜론을 포함해서는 않된다.
2.5.14.4 Return Value
wbCookieSetValue()호출 성공시 1 을 실패한 경우에는 –1 을 return 한다.
2.5.14.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(setvalue.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
WebtoB WebtoB Reference Manual
TmaxSoft 204
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
setvalue SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = setvalue
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i setvalue.m
② service table 을 생성한다.
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(setvalue.c)
#include <stdio.h>
#include "../usrinc/atmi.h"
#include "../usrinc/wbapi.h"
test(WBSVCINFO *rqst)
{
cookie_t *cookie;
int ver;
char *value;
cookie = wbCreateCookie(rqst, "name", "tmaxsoft");
value = wbCookieGetValue(rqst, cookie);
WebtoB Reference Manual WebtoB
TmaxSoft 205
wbPrint(rqst, "<h2>old value = %s</h2>", value);
ver = wbPutCookie(rqst, cookie);
wbCookieSetValue(rqst, cookie,"webtob");
value = wbCookieGetValue(rqst, cookie);
wbPrint(rqst, "<h2>new value = %s</h2>", value);
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c setvalue
Result
Browser 로 WBAPI service 를 요청하면 다음과 같은 결과가 나온다.
2.5.14.6 See Also
wbCookieSetName(), wbCookieSetPath(), wbCookieSetComment(), wbCookieSetVersion(), wbCookieSetDomain(), wbCookieSetMaxAge(), wbCookieSetSecure()
2.5.15 wbCookieSetVersion
2.5.15.1 Name
wbCookieSetVersion : Cookie 의 버전을 return 한다.
2.5.15.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
int wbCookieSetVersion(WBSVCINFO *wbsvc, cookie_t *cookie, int
version);
WebtoB WebtoB Reference Manual
TmaxSoft 206
2.5.15.3 Description
Cookie 에 설정된 버전을 다시 지정한다.
2.5.15.4 Return Value
wbCookieSetVersion()호출이 성공 일 경우에는 1 을 return 한다. 만약 실패할 경우에는 0 이 return 된다.
2.5.15.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(version.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
version SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = version
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i version.m
② service table 을 생성한다.
WebtoB Reference Manual WebtoB
TmaxSoft 207
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(version.c)
#include <stdio.h>
#include "../usrinc/atmi.h"
#include "../usrinc/wbapi.h"
test(WBSVCINFO *rqst) {
cookie_t *cookie;
int ver;
int version;
cookie = wbCreateCookie(rqst, "name", "tmaxsoft");
version = wbCookieGetVersion(rqst, cookie);
wbPrint(rqst, "<h2>old version = %d</h2>", version);
ver = wbPutCookie(rqst, cookie);
wbCookieSetVersion(rqst, cookie,1);
version = wbCookieGetVersion(rqst, cookie);
wbPrint(rqst, "<h2>new version = %d</h2>", version);
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c version
Result
Browser 로 WBAPI service 를 요청하면 다음과 같은 결과가 나온다.
WebtoB WebtoB Reference Manual
TmaxSoft 208
2.5.15.6 See Also
wbCookieGetName(), wbCookieGetPath(), wbCookieGetValue(), wbCookieGetDomain()
2.6 SESSION API 2.6.1 wbGetSession
2.6.1.1 Name
wbGetSession : 요청하는 사용자에게 현재 세션을 리턴한다.
2.6.1.2 Synopsis
#include <wbapi.h>
SESSION* wbGetSession(WBSVCINFO *rqst)
2.6.1.3 Description
요청을 만드는 사용자와 연관된 현재 세션을 Return 한다. 만약 세션이 없다면 새로운 세션을 만들어 Return 한다. 세션이 올바르게 관리 되고 있다는 것을 확신하기 위해, 어떤 결과가 응답으로 가기전에 적어도 한번 이상 호출되어야 한다.
2.6.1.4 Return Value
wbGetSession ()호출 성공에는 유효한 SESSION 을 return 한다.
2.6.1.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(getsession.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR = "/user2/haninho/webtob/ap",
PORT = "7654"
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
WebtoB Reference Manual WebtoB
TmaxSoft 209
webapg NODENAME = "tmaxh1", SvrType = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc = 2
getsession SVGNAME = webapg, MinProc = 1, MaxProc = 2
*SERVICE
test SVrname= getsession
*URI
uri1 uri = "/svct/", SvrType = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i getsession.m
② service table 을 생성한다.
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(getsession.c)
#include <stdio.h>
#include <string.h>
#include "../usrinc/wbapi.h"
test(WBSVCINFO *rqst)
{
char *id;
SESSION *session;
session = wbGetSession(rqst);
id = wbSessionGetId(session);
wbPrint(rqst,”session id= %s”, id);
wbReturn(rqst, WBSUCCESS);
}
Makefile
WebtoB WebtoB Reference Manual
TmaxSoft 210
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c getsession
Result
Browser 로 WBAPI service 를 요청하면 다음과 같은 결과가 나온다.
2.6.1.6 See Also
wbGetRequestedSessionId(), wbGetSessionId(), wbSessionGetValue(),wbSessionGetLastAccessedTime(), wbSessionGetMaxInactiveInterval(), wbSessionGetCreationTime(), wbSessionGetValueNames()
2.6.2 wbSessionGetCreationTime
2.6.2.1 Name
wbSessionGetCreationTime : 현재 세션이 만들어진 시간을 리턴한다.
2.6.2.2 Synopsis
#include <wbapi.h>
long wbSessionGetCreationTime(SESSION *session)
2.6.2.3 Description
1970 GMT, 1 월 1 일 자정 이후의 시간을 밀리세컨드 단위로 표시하는 long 타입으로 세션이 만들어진 시간을 return 한다.
2.6.2.4 Return Value
wbSessionGetCreationTime()호출 성공에시에는 SESSION 이 만들어진 시간을 return 한다.
WebtoB Reference Manual WebtoB
TmaxSoft 211
2.6.2.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(createtime.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR = "/user2/haninho/webtob/ap",
PORT = "7654"
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SvrType = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc = 2
createtime SVGNAME = webapg, MinProc = 1, MaxProc = 2
*SERVICE
test SVrname= createtime
*URI
uri1 uri = "/svct/", SvrType = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i createtime.m
② service table 을 생성한다.
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(createtime.c)
WebtoB WebtoB Reference Manual
TmaxSoft 212
#include <stdio.h>
#include <string.h>
#include "../usrinc/atmi.h"
#include "../usrinc/wbapi.h"
test(WBSVCINFO *rqst) {
long time;
SESSION *session;
session = wbGetSession(rqst);
time = wbSessionGetCreationTime(session);
wbPrint(rqst, "create time = %ld<br>", time);
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c createtime
Result
Browser 로 WBAPI service 를 요청하면 다음과 같은 결과가 나온다.
2.6.2.6 See Also
wbGetRequestedSessionId(), wbGetSession(), wbGetSessionId(), wbSessionGetLastAccessedTime(), wbSessionGetMaxInactiveInterval(), wbSessionGetValue(), wbSessionGetValueNames()
WebtoB Reference Manual WebtoB
TmaxSoft 213
2.6.3 wbSessionGetId
2.6.3.1 Name
wbSessionGetId : 현재 세션에 할당된 문자열 식별자를 리턴한다.
2.6.3.2 Synopsis
#include <wbapi.h>
char* wbSessionGetId(SESSION *session)
2.6.3.3 Description
이 세션에 할당된 유일한 문자열 식별자(ID)를 Return 한다.
2.6.3.4 Return Value
wbSessionGetId()호출 성공에시에는 이 세션에 할당된 문자열을 return 한다.
2.6.3.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(getid.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR = "/user2/haninho/webtob/ap",
PORT = "7654"
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SvrType = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc = 2
getid SVGNAME = webapg, MinProc = 1, MaxProc = 2
*SERVICE
test SVrname= getid
*URI
WebtoB WebtoB Reference Manual
TmaxSoft 214
uri1 uri = "/svct/", SvrType = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i getid.m
② service table 을 생성한다.
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(getid.c)
#include <stdio.h>
#include <string.h>
#include "../usrinc/wbapi.h"
test(WBSVCINFO *rqst) {
int ex;
char *id;
SESSION *session;
session = wbGetSession(rqst);
ex = wbSessionIsNew(session);
id = wbSessionGetId(session);
wbPrint(rqst, "session id = %s<br>", id);
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c getid
Result
Browser 로 WBAPI service 를 요청하면 다음과 같은 결과가 나온다.
WebtoB Reference Manual WebtoB
TmaxSoft 215
2.6.3.6 See Also
wbGetRequestedSessionId(), wbSessionGetCreationTime(), wbGetSession(), wbSessionGetLastAccessedTime(), wbSessionGetMaxInactiveInterval(), wbSessionGetValue(), wbSessionGetValueNames()
2.6.4 wbSessionGetLastAccessedTime
2.6.4.1 Name
wbSessionGetLastAccessedTime : 클라이언트가 마지막으로 요청을 보내는 시간을 리턴한다.
2.6.4.2 Synopsis
#include <wbapi.h>
long wbSessionGetLastAccessedTime(SESSION *session)
2.6.4.3 Description
1970 GMT, 1 월 1 일 자정 이후의 시간을 밀리세컨드 단위로 표시하는 long 타입으로 이 세션과 관련하여 클라이언트가 마지막으로 요청을 보낸 시간을 리턴한다.
2.6.4.4 Return Value
wbSessionGetlastAccessedTime()호출 성공에시에는 클라이언트가 마지막으로 요청을 보낸 시간을 return 한다.
2.6.4.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(lasttime.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
WebtoB WebtoB Reference Manual
TmaxSoft 216
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR = "/user2/haninho/webtob/ap",
PORT = "7654"
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SvrType = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc = 2
lasttime SVGNAME = webapg, MinProc = 1, MaxProc = 2
*SERVICE
test SVrname= lasttime
*URI
uri1 uri = "/svct/", SvrType = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i lasttime.m
② service table 을 생성한다.
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(lasttime.c)
#include <stdio.h>
#include <string.h>
#include "../usrinc/wbapi.h"
test(WBSVCINFO *rqst) {
long last;
SESSION *session;
session = wbGetSession(rqst);
last = wbSessionGetLastAccessedTime(session);
WebtoB Reference Manual WebtoB
TmaxSoft 217
wbPrint(rqst, "session last access time = %ld<br>", last);
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c lasttime
Result
Browser 로 WBAPI service 를 요청하면 다음과 같은 결과가 나온다.
2.6.4.6 See Also
wbGetRequestedSessionId(), wbSessionGetCreationTime(), wbGetSessionId(), wbGetSession(), wbSessionGetMaxInactiveInterval(), wbSessionGetValue(), wbSessionGetValueNames()
2.6.5 wbSessionGetValue
2.6.5.1 Name
wbSessionGetValue : 지정한 이름의 값을 세션에서 찾아 return 한다.
2.6.5.2 Synopsis
#include <wbapi.h>
int wbSessionGetValue(SESSION *session, char *name, int *len)
2.6.5.3 Description
지정한 이름의 값을 세션에서 찾아 return 한다. 만약 찾으려는 값의 이름이 없다면 NULL 을 return 한다.
WebtoB WebtoB Reference Manual
TmaxSoft 218
2.6.5.4 Return Value
지정한 이름의 값을 세션에서 찾아 return 한다. 만약 찾으려는 값의 이름이 없다면 NULL 을 return 한다.
2.6.5.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(getvalue.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR = "/user2/haninho/webtob/ap",
PORT = "7654"
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SvrType = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc = 2
getvalue SVGNAME = webapg, MinProc = 1, MaxProc = 2
*SERVICE
test SVrname= getvalue
*URI
uri1 uri = "/svct/", SvrType = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i getvalue.m
② service table 을 생성한다.
$wsgst
WebtoB Reference Manual WebtoB
TmaxSoft 219
Source
요청을 처리해 주는 wbapi 프로그램(getvalue.c)
#include <stdio.h>
#include <string.h>
#include "../usrinc/wbapi.h"
test(WBSVCINFO *rqst){
int len;
char *value, *value2;
SESSION *session;
SESSION *session1;
SESSION *session2;
session= wbGetSession(rqst);
session1 = wbSessionSetValue(session, "name", "webtob",6);
session2 = wbSessionSetValue(session1, "tel", "123-1234",8);
value = wbSessionGetValue(session2 , "name",&len);
value2 = wbSessionGetValue(session2 , "tel",&len);
wbPrint(rqst, "session value = %s<br>", value);
wbPrint(rqst, "session value = %s", value2);
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c getvalue
Result
Browser 로 WBAPI service 를 요청하면 다음과 같은 결과가 나온다.
WebtoB WebtoB Reference Manual
TmaxSoft 220
2.6.5.6 See Also
wbGetRequestedSessionId(), wbSessionGetCreationTime(), wbGetSessionId(), wbSessionGetLastAccessedTime(), wbSessionGetMaxInactiveInterval(), wbGetSession(), wbSessionGetValueNames()
2.6.6 wbSessionGetValueNames
2.6.6.1 Name
wbSessionGetValueNames : 현재 세션에 포함된 모든 값의 이름을 포함하는 배열을 리턴한다.
2.6.6.2 Synopsis
#include <wbapi.h>
char** wbSessionGetValueNames(SESSION *session, int *len)
2.6.6.3 Description
세션에 포함된 모든 값의 이름을 포한하는 배열을 리턴한다. 만약 세션에 어떠한 값도 포함되어 있지 않다면 NULL 을 return 한다.
2.6.6.4 Return Value
세션에서 모든 값의 이름을 찾아서 return 한다. 만약 어떠한 값도 없다면 NULL 을 return 한다.
2.6.6.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(valuename.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR = "/user2/haninho/webtob/ap",
PORT = "7654"
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SvrType = WEBSTD
*SERVER
WebtoB Reference Manual WebtoB
TmaxSoft 221
html SVGNAME = htmlg, MinProc = 1, MaxProc = 2
valuename SVGNAME = webapg, MinProc = 1, MaxProc = 2
*SERVICE
test SVrname= valuename
*URI
uri1 uri = "/svct/", SvrType = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i valuename.m
② service table 을 생성한다.
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(valuename.c)
#include <stdio.h>
#include <string.h>
#include "../usrinc/wbapi.h"
test(WBSVCINFO *rqst) {
char **na;
int len;
SESSION *session;
SESSION *session1;
SESSION *session2;
session= wbGetSession(rqst);
session1 = wbSessionSetValue(session, "name", "webtob",6);
session2 = wbSessionSetValue(session1, "tel", "123-
1234",8);
na = wbSessionGetValueNames(session2,&len);
wbPrint(rqst,"name1 = %s\n<br>",*na);
wbPrint(rqst,"name2 = %s\n",*(na+1));
wbReturn(rqst, WBSUCCESS);
}
WebtoB WebtoB Reference Manual
TmaxSoft 222
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c valuename
Result
Browser 로 WBAPI service 를 요청하면 다음과 같은 결과가 나온다.
2.6.6.6 See Also
wbGetRequestedSessionId(), wbSessionGetCreationTime(), wbGetSessionId(), wbSessionGetLastAccessedTime(), wbSessionGetMaxInactiveInterval(), wbSessionGetValue(), wbGetSession ()
2.6.7 wbSessionGetMaxInactiveInterval
2.6.7.1 Name
wbSessionGetMaxInactiveInterval : 세션에 정해진 최대 inactive interval 을 얻어온다.
2.6.7.2 Synopsis
#include <wbapi.h>
int wbSessionGetMaxInactiveInterval(SESSION *session)
2.6.7.3 Description
세션에 정해진 최대 inactive interval 시간을 초단위로 얻는다. Default 값은 1800 초로 30 분이다.
WebtoB Reference Manual WebtoB
TmaxSoft 223
2.6.7.4 Return Value
wbSessionGetMaxInactiveInterval()호출 성공에시에는 세션에 정해진 inactive interval time 초단위로 return 한다.
2.6.7.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(getinterval.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR = "/user2/haninho/webtob/ap",
PORT = "7654"
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SvrType = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc = 2
getinterval SVGNAME = webapg, MinProc = 1, MaxProc = 2
*SERVICE
test SVrname= getinterval
*URI
uri1 uri = "/svct/", SvrType = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i getinterval.m
② service table 을 생성한다.
$wsgst
WebtoB WebtoB Reference Manual
TmaxSoft 224
Source
요청을 처리해 주는 wbapi 프로그램(getinterval.c)
#include <stdio.h>
#include <string.h>
#include "../usrinc/wbapi.h"
test(WBSVCINFO *rqst) {
int ex=0, interval, check;
SESSION *session;
session = wbGetSession(rqst);
ex = wbSessionIsNew(session);
interval = wbSessionGetMaxInactiveInterval(session);
if(ex == 1) {
wbPrint(rqst, "session inactive Interval = %d<br>",
interval);
} else {
wbPrint(rqst," fail create session");
}
check = wbSessionSetMaxInactiveInterval(session, 3000);
interval = wbSessionGetMaxInactiveInterval(session);
wbPrint(rqst, "session new inactive Interval = %d<br>",
interval);
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c getinterval
Result
Browser 로 WBAPI service 를 요청하면 다음과 같은 결과가 나온다.
WebtoB Reference Manual WebtoB
TmaxSoft 225
2.6.7.6 See Also
wbGetRequestedSessionId(), wbSessionGetCreationTime(), wbGetSessionId(), wbSessionGetLastAccessedTime(), wbGetSession (), wbSessionGetValue(), wbSessionGetValueNames()
2.6.8 wbSessionSetMaxInactiveInterval
2.6.8.1 Name
wbSessionSetMaxInactiveInterval : 세션에 정해진 최대 inactive interval 을 다시 설정한다.
2.6.8.2 Synopsis
#include <wbapi.h>
int wbSessionSetMaxInactiveInterval(SESSION *session, int
interval)
2.6.8.3 Description
세션에 정해진 최대 inactive interval 시간을 초단위로 다시 설정한다. Default 값은 1800 초로 30 분이다.
2.6.8.4 Return Value
wbSessionSetMaxInactiveInterval()호출 성공에시에는 1 을 return 하고 실패할 경우에는 0 을 return 한다.
2.6.8.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(setinterval.m)
*DOMAIN
webtob1
WebtoB WebtoB Reference Manual
TmaxSoft 226
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR = "/user2/haninho/webtob/ap",
PORT = "7654"
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SvrType = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc = 2
setinterval SVGNAME = webapg, MinProc = 1, MaxProc = 2
*SERVICE
test SVrname= setinterval
*URI
uri1 uri = "/svct/", SvrType = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i setinterval.m
② service table 을 생성한다.
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(setinterval.c)
#include <stdio.h>
#include <string.h>
#include "../usrinc/wbapi.h"
test(WBSVCINFO *rqst) {
int ex=0, interval, check;
SESSION *session;
WebtoB Reference Manual WebtoB
TmaxSoft 227
session = wbGetSession(rqst);
ex = wbSessionIsNew(session);
interval = wbSessionGetMaxInactiveInterval(session);
if(ex == 1) {
wbPrint(rqst, "session inactive Interval = %d<br>",
interval);
} else {
wbPrint(rqst," fail create session");
}
check = wbSessionSetMaxInactiveInterval(session, 3000);
interval = wbSessionGetMaxInactiveInterval(session);
wbPrint(rqst, "session new inactive Interval = %d<br>",
interval);
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c setinterval
Result
Browser 로 WBAPI service 를 요청하면 다음과 같은 결과가 나온다.
2.6.8.6 See Also
wbSessionSetValue()
WebtoB WebtoB Reference Manual
TmaxSoft 228
2.6.9 wbSessionSetValue
2.6.9.1 Name
wbSessionSetValue : 지정한 이름의 값을 세션에 저장한다.
2.6.9.2 Synopsis
#include <wbapi.h>
SESSION* wbSessionSetValue(SESSION *session, char *name, int
len)
2.6.9.3 Description
지정한 이름의 값이 세션에 저장된다. 만약 저장하려는 값의 이름이 있다면 교체된다.
2.6.9.4 Return Value
지정한 이름의 값이 저장된 세션이 return 된다.
2.6.9.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(setvalue.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR = "/user2/haninho/webtob/ap",
PORT = "7654"
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SvrType = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc = 2
setvalue SVGNAME = webapg, MinProc = 1, MaxProc = 2
*SERVICE
test SVrname= setvalue
WebtoB Reference Manual WebtoB
TmaxSoft 229
*URI
uri1 uri = "/svct/", SvrType = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i setvalue.m
② service table 을 생성한다.
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(setvalue.c)
#include <stdio.h>
#include <string.h>
#include "../usrinc/wbapi.h"
test(WBSVCINFO *rqst) {
int len;
char *value, *value2;
SESSION *session;
SESSION *session1;
SESSION *session2;
session= wbGetSession(rqst);
session1 = wbSessionSetValue(session, "name", "webtob",6);
session2 = wbSessionSetValue(session1, "tel", "123-1234",8);
value = wbSessionGetValue(session2 , "name",&len);
value2 = wbSessionGetValue(session2 , "tel",&len);
wbPrint(rqst, "session value = %s<br>", value);
wbPrint(rqst, "session value = %s", value2);
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c
WebtoB WebtoB Reference Manual
TmaxSoft 230
Result
Browser 로 WBAPI service 를 요청하면 다음과 같은 결과가 나온다.
2.6.9.6 See Also
wbSessionSetMaxInactiveInterval()
2.6.10 wbSessionRemoveValue
2.6.10.1 Name
wbSessionRemoveValue : 세션에 저장된 값을 제거한다.
2.6.10.2 Synopsis
#include <wbapi.h>
int wbSessionRemoveValue(SESSION *session, char *name)
2.6.10.3 Description
세션에 저장된 값을 제거한다. 만약 인자 name 으로 저장된 값이 없다면 아무일도 하지 않는다.
2.6.10.4 Return Value
wbSessionRemoveValue()호출 성공시 1 을 실패한 경우에는 0 을 return 한다.
2.6.10.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(remove.m)
*DOMAIN
webtob1
WebtoB Reference Manual WebtoB
TmaxSoft 231
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
remove SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = remove
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i remove.m
② service table 을 생성한다.
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(remove.c)
#include <stdio.h>
#include <string.h>
#include "../usrinc/wbapi.h"
test(WBSVCINFO *rqst)
{
WebtoB WebtoB Reference Manual
TmaxSoft 232
int ex, len;
char *value, *value2;
SESSION *session;
SESSION *newsession;
session = wbGetSession(rqst);
newsession = wbSessionSetValue(session, "name",
"webtob",7);
value = wbSessionGetValue(newsession , "name",&len);
wbPrint(rqst, "session value = %s<br>", value);
ex = wbSessionRemoveValue(newsession, "name");
if(ex ==1)
{
wbPrint(rqst, "delete value<br>");
}
value2 = wbSessionGetValue(newsession , "name", &len);
if(value2 !=NULL)
{
wbPrint(rqst, "session value = %s<br>", value2);
}
else
{
wbPrint(rqst, "session value is null<br>");
}
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c remove
Result
Browser 로 WBAPI service 를 요청하면 다음과 같은 결과가 나온다.
WebtoB Reference Manual WebtoB
TmaxSoft 233
2.6.10.6 See Also
wbSessionGetValue(), wbSessionSetValue()
2.6.11 wbSessionIsNew
2.6.11.1 Name
wbSessionIsNew : 세션이 새로운 것인지 아닌지 나타내는 값을 return 한다.
2.6.11.2 Synopsis
#include <wbapi.h>
int wbSessionIsNew(SESSION *session)
2.6.11.3 Description
세션이 새로운 것인지 아닌지를 나타내는 값을 리턴한다. 서버가 세션을 만들었으나, 클라이언트가 합쳐질 세션을 승인하지 않았다면 이 세션은 새로운것이다.
2.6.11.4 Return Value
wbSessionIsNew()호출 후 세션이 새로운 것이라면 1 을 클라이언트가 이미 세션을 승인하였다면 0 을 return 한다.
2.6.11.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(isnew.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
WebtoB WebtoB Reference Manual
TmaxSoft 234
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
isnew SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = isnew
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i isnew.m
② service table 을 생성한다.
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(isnew.c)
#include <stdio.h>
#include <string.h>
#include "../usrinc/wbapi.h"
test(WBSVCINFO *rqst) {
int ex=0;
SESSION *session;
session = wbGetSession(rqst);
ex = wbSessionIsNew(session);
WebtoB Reference Manual WebtoB
TmaxSoft 235
if(ex == 1) {
wbPrint(rqst, "new session");
} else {
wbPrint(rqst," old session");
}
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c isnew
Result
Browser 로 WBAPI service 를 요청하면 다음과 같은 결과가 나온다.
2.6.11.6 See Also
wbGetRequestedSessionId(), wbIsRequestedSessionIdValid(), wbSessionInvalidate()
2.6.12 wbSessionInvalidate
2.6.12.1 Name
wbSessionInvalidate : 세션을 무효화 시킨다.
2.6.12.2 Synopsis
#include <wbapi.h>
int wbSessionInvalidate(SESSION *session)
WebtoB WebtoB Reference Manual
TmaxSoft 236
2.6.12.3 Description
현재 세션을 바로 무효화 시킨다.
2.6.12.4 Return Value
wbSessionInvalidate()호출 성공시 1 을 실패한 경우에는 0 을 return 한다.
2.6.12.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(invalidate.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
invalidate SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = invalidate
test2 SVRNAME = invalidate
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i invalidate.m
WebtoB Reference Manual WebtoB
TmaxSoft 237
② service table 을 생성한다.
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(invalidate.c)
#include <stdio.h>
#include <string.h>
#include "../usrinc/wbapi.h"
test(WBSVCINFO *rqst)
{
char *id;
SESSION *session;
session = wbGetSession(rqst);
id = wbSessionGetId(session);
wbPrint(rqst, "<html><body>");
wbPrint(rqst, "<h1>session id is %s </h1><br>",id);
wbPrint(rqst, "<form method=get action=/svct/test2>");
wbPrint(rqst, "<td><input type=submit value=suit></td>");
wbPrint(rqst, "</form>");
wbPrint(rqst, "</body></html>");
wbReturn(rqst, WBSUCCESS);
}
test2(WBSVCINFO *rqst)
{
int date;
char *id;
SESSION *session;
session= wbGetSession(rqst);
date = wbSessionInvalidate(session);
id = wbSessionGetId(session);
if(id !=NULL)
{
wbPrint(rqst, "<h1>session id is %s </h1><br>",id);
}
else
{
wbPrint(rqst, "<hi>Session id is Null</h1>");
}
if(date == 1)
WebtoB WebtoB Reference Manual
TmaxSoft 238
{
wbPrint(rqst, "session is invalidate=%d<br>",date);
}
else
{
wbPrint(rqst, "session is validate=%d<br>",date);
}
wbPrint(rqst, "<html><body>");
wbPrint(rqst, "<form method=get action=/svct/test2>");
wbPrint(rqst, "<td><input type=submit value=suit></td>");
wbPrint(rqst, "</form>");
wbPrint(rqst, "</body></html>");
wbReturn(rqst, WBSUCCESS);}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c invalidate
Result
submit 버튼을 클릭한다.
다시 버튼을 클릭한다.
WebtoB Reference Manual WebtoB
TmaxSoft 239
2.6.12.6 See Also
wbGetRequestedSessionId(), wbIsRequestedSessionIdValid(), wbSessionIsNew()
2.6.13 wbGetRequestedSessionId
2.6.13.1 Name
wbGetRequestedSessionId : 사용자에 의해 명확해진 Session Id 를 return 한다.
2.6.13.2 Synopsis
#include <wbapi.h>
char* wbGetRequestedSessionId(WBSVCINFO *rqst)
2.6.13.3 Description
사용자에 의해 명확해진 세션 ID 를 리턴한다. 이것은 실제의 세션 ID 가 아닐수도 있다. 가령, 요청이 일어나기 전에 세션이 끝났으면, 서버는 새로운 세션 ID 를 만들고 대신에 새로 만든 것을 사용하기 때문이다.
2.6.13.4 Return Value
wbGetRequestedSessionId()호출 성공시 세션 ID 를 return 한다.
2.6.13.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(sessionid.m)
*DOMAIN
webtob1
WebtoB WebtoB Reference Manual
TmaxSoft 240
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
sessionid SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = sessionid
test2 SVRNAME = sessionid
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i sessionid.m
② service table 을 생성한다.
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(sessionid.c)
#include <stdio.h>
#include <string.h>
#include "../usrinc/wbapi.h"
test(WBSVCINFO *rqst)
{
WebtoB Reference Manual WebtoB
TmaxSoft 241
char *id;
SESSION *session;
session = wbGetSession(rqst);
id = wbSessionGetId(session);
wbPrint(rqst, "<html><body>");
wbPrint(rqst, "<h1>session id is %s </h1><br>",id);
wbPrint(rqst, "<html><body>");
wbPrint(rqst, "<form method=get action=/svct/test2>");
wbPrint(rqst, "<td><input type=submit value=suit></td>");
wbPrint(rqst, "</form>");
wbPrint(rqst, "</body></html>");
wbReturn(rqst, WBSUCCESS);
}
test2(WBSVCINFO *rqst)
{
char *sessionid;
sessionid = wbGetRequestedSessionId(rqst);
if(sessionid != NULL)
{
wbPrint(rqst, "sessionId is = %s<br>",sessionid);
}
else
{
wbPrint(rqst, "sessionId is NULL<br>");
}
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c sessionid
Result
submit 버튼을 클릭한다.
WebtoB WebtoB Reference Manual
TmaxSoft 242
다시 버튼을 클릭한다.
2.6.13.6 See Also
wbSessionIsNew(), wbIsRequestedSessionIdValid(), wbSessionInvalidate()
2.6.14 wbIsRequestedSessionIdValid
2.6.14.1 Name
wbIsRequestedSessionIdValid : 클라이언트에 의해 요청된 세션이 올바른 세션인지 확인한다.
2.6.14.2 Synopsis
#include <wbapi.h>
int wbIsRequestedSessionIdValid(WBSVCINFO *rqst)
2.6.14.3 Description
클라이언트에 의해 요청된 세션이 올바른 세션이고, 따라서 현재 사용중이라면 1 을 리턴한다. 하지만 새로 만들어진 세션과 사용기간이 끝난 세션에 대해서는 0 을 리턴한다.
WebtoB Reference Manual WebtoB
TmaxSoft 243
2.6.14.4 Return Value
wbIsRequestedSessionIdVaild()호출시 세션이 사용중이면 1 을, 사용이 끝났을 경우에는 0 을 return 한다.
2.6.14.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(idvalid.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
idvalid SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = idvalid
test2 SVRNAME = idvalid
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i idvalid.m
② service table 을 생성한다.
$wsgst
WebtoB WebtoB Reference Manual
TmaxSoft 244
Source
요청을 처리해 주는 wbapi 프로그램(sessionid.c)
#include <stdio.h>
#include <string.h>
#include "../usrinc/wbapi.h"
test(WBSVCINFO *rqst) {
char *id;
SESSION *session;
session = wbGetSession(rqst);
id = wbSessionGetId(session);
wbPrint(rqst, "<html><body>");
wbPrint(rqst, "<h1>session id is %s </h1><br>",id);
wbPrint(rqst, "<html><body>");
wbPrint(rqst, "<form method=get action=/svct/test2>");
wbPrint(rqst, "<td><input type=submit value=suit></td>");
wbPrint(rqst, "</form>");
wbPrint(rqst, "</body></html>");
wbReturn(rqst, WBSUCCESS);
}
test2(WBSVCINFO *rqst) {
int date;
date = wbIsRequestedSessionIdValid(rqst);
if(date == 1)
{
wbPrint(rqst, "session is used=%d<br>",date);
}
else
{
wbPrint(rqst, "session is not used=%d<br>",date);
}
wbPrint(rqst, "<html><body>");
wbPrint(rqst, "<form method=get action=/svct/test2>");
wbPrint(rqst, "<td><input type=submit value=suit></td>");
wbPrint(rqst, "</form>");
wbPrint(rqst, "</body></html>");
wbReturn(rqst, WBSUCCESS);}
WebtoB Reference Manual WebtoB
TmaxSoft 245
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c sessionid
Result
submit 버튼을 클릭한다.
다시 버튼을 클릭한다.
2.6.14.6 See Also
wbGetRequestedSessionId(), wbSessionIsNew(), wbSessionInvalidate()
WebtoB WebtoB Reference Manual
TmaxSoft 246
2.7 SEND API 2.7.1 wbFlush
2.7.1.1 Name
wbFlush : 현재 Buffer 에 있는 모든 내용을 모두 write 하게 한다.
2.7.1.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
int wbFlush(WBSVCINFO *rqst)
2.7.1.3 Description
wbFlush()는 현재 Buffer 에 있는 모든 내용을 write 하게 한다. C-Language 의 fflush() 함수와 같은 기능을 한다고 보면 된다. 즉, 현재 System Buffer 에 있는 모든 내용을 화면에 write 하게 한다.
2.7.1.4 Return Value
함수가 정상적으로 수행될 경우 wbFlush()은 1 을 return 한다. 에러 발생시 –1 을 return 한다.
2.7.1.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(flush.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
flush SVGNAME = webapg, MinProc = 1, MaxProc = 2,
WebtoB Reference Manual WebtoB
TmaxSoft 247
*SERVICE
test SVRNAME = flush
test2 SVRNAME = flush
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i flush.m
② service table 을 생성한다.
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(flush.c)
#include <stdio.h>
#include "../usrinc/atmi.h"
#include "../usrinc/wbapi.h"
test(WBSVCINFO *rqst) {
wbPrint(rqst, "<HTML>\n");
wbFlush(rqst);
wbPrint(rqst,"<H1>Tmax soft</H1> \n");
wbFlush(rqst);
wbPrint(rqst,"<h2>Tmax soft</h2> \n");
wbFlush(rqst);
wbPrint(rqst, "</HTML>\n");
wbReturn(rqst, WBSUCCESS);
}
test2(WBSVCINFO *rqst) {
wbPrint(rqst, "<HTML>\n");
wbPrint(rqst,"<H1>Tmax soft</H1> \n");
wbPrint(rqst,"<h2>Tmax soft</h2> \n");
wbPrint(rqst, "</HTML>\n");
wbReturn(rqst, WBSUCCESS);
}
WebtoB WebtoB Reference Manual
TmaxSoft 248
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c flush
Result
telnet 로 WBAPI service test 를 요청하면 다음과 같은 결과가 나온다.
wbFlush()사용.
HTTP/1.1 200 OK
Date: Thu, 01 Nov 2001 04:43:30 GMT
Server: WebtoB/3.0
Content-Type: text/html
Transfer-Encoding: chunked
7
<HTML>
14
<H1>Tmax soft</H1>
14
<h2>Tmax soft</h2>
8
</HTML>
0
telnet 로 WBAPI service test2 를 요청하면 다음과 같은 결과가 나온다.
HTTP/1.1 200 OK
Date: Thu, 01 Nov 2001 04:43:52 GMT
Server: WebtoB/3.0
Content-Type: text/html
Content-Length: 55
<HTML>
<H1>Tmax soft</H1>
<h2>Tmax soft</h2>
</HTML>
WebtoB Reference Manual WebtoB
TmaxSoft 249
2.7.2 wbSendError
2.7.2.1 Name
wbSendError : Status Code 가 에러를 표시할 때 Client 에게 특정메시지를 보여준다.
2.7.2.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
int wbSendError(WBSVCINFO *rqst, int status, char *msg)
2.7.2.3 Description
wbSendError()는 인수 status 에 설정된 Status Code 에 따라서 인수 msg 에 설정된 간단한 메시지를 Default 메시지에 덧붙여서 Client 에게 보여줄 수 있다. 여기서 설정된 msg 는 HTML 형태가 아닌 텍스트형태의 메시지이다. msg 를 NULL 로 설정하면 Default 메시지만 출력된다.
wbSendError()함수를 이용하게 되면 Browser 화면을 갱신할 수 없다. 따라서 wbSendError()함수가 호출된 후에는 wbPrint()등의 출력함수를 호출하는 것은 아무 의미가 없다. 만약 HTML 형태로 Client 에게 더많은 메시지를 출력하고 싶다면 wbSetStatus()함수를 이용할 것을 권한다.
wbSendError()함수를 사용하면 화면갱신은 할 수 없지만 함수 내부에서 wbReturn()함수를 호출하는 것은 아니므로 반드시 wbReturn()함수로 return 해주어야 한다.
wbSendError()함수에 설정된 메시지는 일부 Browser 의 설정에 따라서 보여지지 않을 수 있다. 예를 들어, Microsoft Internet Explorer 에서는 HTTP 오류메시지를 표시하도록 설정이 되어있으면 WebtoB 에서는 wsSendError()에서 설정된 메시지를 덧붙여 HTML 페이지를 작성하지만 Explorer 에서 Status Code 에 따라 그 자체에 설정된 HTML 페이지를 보여주게 된다.
2.7.2.4 Return Value
함수가 정상적으로 수행될 경우 wbSendError()은 1 을 return 한다. 에러 발생시 –1 을 return 한다.
2.7.2.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(senderror.m)
WebtoB WebtoB Reference Manual
TmaxSoft 250
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
senderror SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = senderror
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i senderror.m
② service table 을 생성한다.
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(senderror.c)
#include <stdio.h>
#include <usrinc/atmi.h>
#include <usrinc/wbapi.h>
test(WBSVCINFO *rqst)
WebtoB Reference Manual WebtoB
TmaxSoft 251
{
wbPrint(rqst, "<HTML>\n");
wbPrint(rqst, "<HEAD><TITLE>wbSendError Test</TITLE>
</HEAD>\n");
wbPrint(rqst, "<BODY>\n");
wbPrint(rqst, "<H1>Not Printed</H1>\n");
wbPrint(rqst, "</BODY>\n");
wbPrint(rqst, "</HTML>\n");
wbSendError(rqst, 404, "File is not exist");
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c senderror
Result
Browser 로 WBAPI service test 를 요청하면 다음과 같은 결과가 나온다.
Internet explorer 의 경우에는 도구->인터넷 옵션->고급->HTTP 오류 메시지 표시의 체크표시를 없애야 이러한 결과를 볼 수 있다.
2.7.2.6 See Also
wbSetStatus()
WebtoB WebtoB Reference Manual
TmaxSoft 252
2.7.3 wbSendRedirect
2.7.3.1 Name
wbSendRedirect : 지정된 주소로 응답을 되돌려준다.
2.7.3.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
int wbSendRedirect(WBSVCINFO *rqst, char *location);
2.7.3.3 Description
Status Code 와 Location Header 를 세팅하면서 지정된 주소로 응답을 되돌려준다. 주소는 상대경로와 절대경로 모두 설정이 가능하다. 절대경로를 설정할때에는 “http://”를 설정한다.
wbSendRedirect()함수를 사용하면 화면갱신은 할 수 없지만 함수 내부에서 wbReturn()함수를 호출하는 것은 아니므로 반드시 wbReturn()함수로 return 해주어야 한다.
2.7.3.4 Return Value
함수가 정상적으로 수행될 경우 wbSendRedirect()은 1 을 return 한다. 에러 발생시 –1 을 return 한다.
2.7.3.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(redirect.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
WebtoB Reference Manual WebtoB
TmaxSoft 253
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
redirect SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = redirect
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i redirect.m
② service table 을 생성한다.
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(redirect.c)
#include <stdio.h>
#include "../usrinc/atmi.h"
#include "../usrinc/wbapi.h"
test(WBSVCINFO *rqst) {
wbSetStatus(rqst, 302, NULL);
wbSendRedirect(rqst, "http://www.tmax.co.kr");
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c redirect
Result
Browser 로 WBAPI service 를 요청하면 다음과 같은 결과가 나온다.
WebtoB WebtoB Reference Manual
TmaxSoft 254
2.7.4 wbReturn
2.7.4.1 Name
wbReturn : WBAPI 의 반환을 알린다.
2.7.4.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
wbReturn(WBSVCINFO *rqst, int rval)
2.7.4.3 Description
WBAPI 의 종료를 알리는 것으로 c 언어에서의 리턴문장과 같은 역할을 수행하며 각 WBAPI 의 프로그램의 마지막에서는 항상 이 wbReturn()을 선언하여야 한다. wbReturn()이 호출되면 Request 된 서비스가 종료된다. WBAPI 의 실행이 성공적으로 종료되었을 경우 Return 값은 WBSUCCESS 를 실패한 경우에는 WBEXIT, WBDOWN, WBERROR, WBFAIL 중에서 상황에 맞게 선택적으로 설정한다. 만약 다른 값으로 선언할 경우에는 프로그램 내부에서 문제가 생길 수 있기 때문에 반드시 wbReturn() 을 선언 하도록 한다.
rval 인수로는 다음 값들이 사용될 수 있다.
WebtoB Reference Manual WebtoB
TmaxSoft 255
[WBSUCCESS]
서비스가 성공적으로 종료되었다.
[WBEXIT]
서비스가 비정상적으로 종료되었다. rval 에 이 값을 설정하게 되면 WebtoB 가 이 서비스를 수행하고 있는 서버 프로세스를 비정상적으로 종료시킨다. 하지만 관리 프로세스인 WSM 이 종료된 서버 프로세스를 restart 하게 된다.
[WBDOWN]
서비스가 비정상적으로 종료되었다. rval 에 이 값을 설정하게 되면 WebtoB 가 이 서비스를 수행하고 있는 서버 프로세스를 정상적으로 종료시킨다. [WBDOWN]을 이용하여 서버 프로세스를 종료시키게 되면 “wsdown –S”를 이용하여 서버 프로세스를 종료시킨 것과 동일한 결과를 유발한다.
[WBERROR]
서비스가 비정상적으로 종료되었다. 인수 rval 에 이 값을 설정하게 되면 XA Auto 트랜잭션을 사용할 경우에는 서비스를 종료할 때 return 되면서 rollback 된다. 또한 [WBERROR]를 사용하여 return 하게 되면 Client 에게 사용자가 설정한 화면을 보여줄 수 있다. 즉, 현재 API 서비스내에 지금까지 사용했던 PUT 계열의 함수를 통해서 Client 의 Browser 에 사용자가 설정한 화면을 보여줄 수 있다.
[WBFAIL]
서비스가 비정상으로 종료되었다. 인수 rval 에 이 값을 설정하게 되면 Response 의 Status Code 는 500 으로 설정되고 Client 의 Browser 에는 “Internal Server Error”라는 화면이 출력된다.
2.7.4.4 Return Value
함수가 정상적으로 수행될 경우 wbReturn()은 1 을 return 한다. 에러 발생시 –1 을 return 한다.
2.7.4.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(return.m)
WebtoB WebtoB Reference Manual
TmaxSoft 256
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
return SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = return
test2 SVRNAME = return
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$wscfl –i return.m
② service table 을 생성한다.
$wsgst
Source
요청을 처리해 주는 wbapi 프로그램(return.c)
#include <stdio.h>
#include "../usrinc/atmi.h"
#include "../usrinc/wbapi.h"
WebtoB Reference Manual WebtoB
TmaxSoft 257
test(WBSVCINFO *rqst)
{
wbPrint(rqst, "<HTML>\n");
wbPrint(rqst,"<H1>Tmax soft</H1> \n");
wbPrint(rqst,"<h2>Tmax soft</h2> \n");
wbPrint(rqst, "</HTML>\n");
wbReturn(rqst, WBSUCCESS);
}
test2(WBSVCINFO *rqst)
{
wbPrint(rqst, "<HTML>\n");
wbPrint(rqst,"<H1>Tmax soft</H1> \n");
wbPrint(rqst,"<h2>Tmax soft</h2> \n");
wbPrint(rqst, "</HTML>\n");
wbReturn(rqst, WBFAIL);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c return
Result
Browser 로 WBAPI service 를 요청하면 다음과 같은 결과가 나온다.
wbReturn(rqst, WBSUCCESS)
WebtoB WebtoB Reference Manual
TmaxSoft 258
Browser 로 WBAPI service 를 요청하면 다음과 같은 결과가 나온다.
wbReturn(rqst, WBFAIL)
2.8 ETC API 2.8.1 wbSaveFile
2.8.1.1 Name
wbSaveFile : 파일의 Upload 를 위한 함수이다.
2.8.1.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
int wbSaveFile(WBSVCINFO *rqst, char *key, char *path)
2.8.1.3 Description
이 함수는 Client 가 서버에 파일을 전송 하기 위해 사용하는 함수로 이 함수는 wbPutFile()와 마찬가지로 web 상에서 자료를 공유하고자 할 때 이러한 기능이 더욱 필요하게 된다. wbSaveFile()은 Client 의 파일을 서버의 Physical Path 를 지정하여 이곳으로 Client 가 전송하게 된다.
2.8.1.4 Return Value
함수가 정상적으로 수행될 경우 wbSaveFile()은 1 을 return 한다. 에러 발생시 –1 을 return 한다.
WebtoB Reference Manual WebtoB
TmaxSoft 259
2.8.1.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(savefile.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR="/user2/haninho/webtob/ap",
PORT = “7654”
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
webapg NODENAME = "tmaxh1", SVRTYPE = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc =2
savefile SVGNAME = webapg, MinProc = 1, MaxProc = 2,
*SERVICE
test SVRNAME = savefile
*URI
wbapi Uri = "/svct/", Svrtype = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$ wscfl –I savefile.m
② service table 을 생성한다.
$ wsgst
Source
요청을 하는 html(savefile.html)
<HTML>
WebtoB WebtoB Reference Manual
TmaxSoft 260
<TITLE> wbSaveFile() Test </TITLE>
<BODY>
<H2> wbSaveFile TEST </H2>
<FORM METHOD=post ACTION="/svct/test" enctype='multipart/form-
data'>
<B>FILE UPLOAD</B>
<TABLE WIDTH=650 BGCOLOR=#DDDDDD>
<TR>
<TD><SMALL><B>file</B></SMALL></TD>
<TD><INPUT TYPE=file NAME=upfile SIZE=35></TD>
</TR>
<TR>
<TD><INPUT TYPE=submit VALUE="upload"></TD>
</TR></TABLE>
</FORM>
</BODY>
</HTML>
요청을 처리해 주는 wbapi 프로그램(savefile.c)
#include <stdio.h>
#include <usrinc/atmi.h>
#include <usrinc/wbapi.h>
test(WBSVCINFO *rqst) {
char *temp, *filedata, *filename, path[255];
long filelen;
int k, count, rtn;
FILE *fp;
count = wbGetDataCount(rqst);
fprintf(stdout,"datacount=%d\n\n",count);
for(k=1; k<=count; k++) {
temp = wbGetNthKey(rqst, k);
fprintf(stdout,"key=%s\n",temp);
filedata=wbGetData(rqst, temp);
if (filedata != NULL)
fprintf(stdout,"data=%s\n",filedata);
if((filename=wbGetFileName(rqst, temp)) != NULL) {
fprintf(stdout,"key=%s\n",temp);
fprintf(stdout,"filename=%s\n",filename);
WebtoB Reference Manual WebtoB
TmaxSoft 261
filelen = wbGetFileLen(rqst, temp);
fprintf(stdout,"filelength=%ld\n",filelen);
sprintf(path, "/user2/haninho/webtob/sample/data/%s", filename);
unlink(path);
rtn = wbSaveFile(rqst, temp, path);
fprintf(stdout,"rtn=%d\n\n",rtn);
if( rtn < 0 ) wbPrint(rqst, "File(%s) Upload failed!!\n",
filename);
else wbPrint(rqst, "File(%s) Upload Success!!<br>\n", filename);
}
else {
filedata=wbGetData(rqst, temp);
fprintf(stdout,"key=%s\n",temp);
fprintf(stdout,"data=%s\n\n",filedata);
wbPrint(rqst, "Key = %s, Data = %s <br>\n\n",temp ,filedata);
}
}
wbReturn(rqst,WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 파일을 이용하여 compile 한다. (참조 부록 3 Makefile)
$compile c savefile
Result
서비스를 요청하는 html
Browser 로 WBAPI service 를 요청하면 다음과 같은 결과가 나온다.
WebtoB WebtoB Reference Manual
TmaxSoft 262
2.8.2 wbGetErrno
2.8.2.1 Name
wbGetErrno : WBAPI 서비스의 Error number 를 return 한다.
2.8.2.2 Synopsis
#include <wbapi.h>
#include <atmi.h>
int wbGetErrno()
2.8.2.3 Description
wbGetErrno()는 WebtoB 사용자가 에러 상황을 정확하게 알 수 있도록 해주는 함수로 “atmi.h” 헤더파일에 설정된 에러 상황을 알려준다.
2.8.2.4 Return Value
함수가 정상적으로 수행될 경우 Error number 를 return 한다.
2.8.2.5 Example
Config-file : wbapi 를 실행하기 위한 환경 파일(geterrno.m)
*DOMAIN
webtob1
*NODE
tmaxh1 WEBTOBDIR="/user2/haninho/webtob",
SHMKEY = 54777,
DOCROOT="/user2/haninho/webtob/docs",
APPDIR = "/user2/haninho/webtob/ap",
PORT = "7654"
*SVRGROUP
htmlg NODENAME = "tmaxh1", SvrType = HTML
WebtoB Reference Manual WebtoB
TmaxSoft 263
webapg NODENAME = "tmaxh1", SvrType = WEBSTD
*SERVER
html SVGNAME = htmlg, MinProc = 1, MaxProc = 2
geterrno SVGNAME = webapg, MinProc = 1, MaxProc = 2
*SERVICE
test SVrname= geterror
*URI
uri1 uri = "/svct/", SvrType = WEBSTD
*EXT
htm MimeType = "text/html", SvrType = HTML
① 환경 파일을 compile 한다.
$ wscfl –i geterrno.m
② service table 을 생성한다.
$ wsgst
Source
요청을 처리해 주는 wbapi 프로그램(geterrno.c)
#include <stdio.h>
#include <usrinc/atmi.h>
#include <usrinc/wbapi.h>
test(WBSVCINFO *rqst) {
int result;
int rnt;
int date;
wbPrint(rqst, "<HTML>\n");
wbPrint(rqst, "<BODY>\n");
result = wbGetErrno();
wbPrint(rqst, "wbGetErrno() : %d<br>\n",result);
date = wbGetDateHdr(rqst, "Modified-Since");
if(date == -1) {
result = wbGetErrno();
wbPrint(rqst, "wbGetDateHdr() is failed<br>\n");
WebtoB WebtoB Reference Manual
TmaxSoft 264
wbPrint(rqst, "wbGetErrno() : %d<br>\n", result);
}
wbPrint(rqst, "</HTML></BODY>");
wbReturn(rqst, WBSUCCESS);
}
Makefile
③ wbapi 로 만들어진 c 파일을 Makefile 을 이용하여 compile 한다. (참조 부록 3 Makefile)
$ compile pc geterrno
Result
Browser 로 WBAPI service 를 요청하면 다음과 같은 결과가 나온다.
WebtoB Reference Manual WebtoB
TmaxSoft 265
3 부 록
3.1 WBAPI.H 헤더 파일
/* ------------------------ usrinc/wbapi.h -------------------- */
/* */
/* Copyright (c) 2000 Tmax Soft Co., Ltd */
/* All Rights Reserved */
/* */
/* ------------------------------------------------------------ */
#ifndef _WEBTOB_WBAPI_H
#define _WEBTOB_WBAPI_H
#include <sys/types.h>
#include <usrinc/atmi.h>
#ifdef _WIN32
#include <winsock2.h>
#else
#include <sys/socket.h>
#define __cdecl
#endif
#ifndef SVC_NAME_SIZE
#define SVC_NAME_SIZE 16
#endif
#define WBFAIL 0x0001 /* [rollback +] internal server error */
#define WBSUCCESS 0x0002 /* [commit +] user-defined page */
#define WBEXIT 0x0004 /* abnormal server exit */
#define WBDOWN 0x0008 /* normal server down */
#define WBERROR 0x0010 /* [rollback +] user-defined page */
/* ----- HTTP Status Codes ---- */
#define HTTP_CONTINUE 100
WebtoB WebtoB Reference Manual
TmaxSoft 266
#define HTTP_SWITCHING_PROTOCOLS 101
#define HTTP_OK 200
#define HTTP_CREATED 201
#define HTTP_NO_CONTENT 204
#define HTTP_PARTIAL_CONTENT 206
#define HTTP_MOVED_TEMPORARILY 302
#define HTTP_REDIRECT HTTP_MOVED_TEMPORARILY
#define HTTP_NOT_MODIFIED 304
#define HTTP_BAD_REQUEST 400
#define HTTP_UNAUTHORIZED 401
#define HTTP_FORBIDDEN 403
#define HTTP_NOT_FOUND 404
#define HTTP_METHOD_NOT_ALLOWED 405
#define HTTP_PROXY_AUTHENTICATION_REQUIRED 407
#define HTTP_CONFLICT 409
#define HTTP_LENGTH_REQUIRED 411
#define HTTP_PRECONDITION_FAILED 412
#define HTTP_REQUEST_ENTITY_TOO_LARGE 413
#define HTTP_REQUEST_URI_TOO_LARGE 414
#define HTTP_INTERNAL_SERVER_ERROR 500
#define HTTP_NOT_IMPLEMENTED 501
#define HTTP_VERSION_NOT_SUPPORTED 505
/* --- for compatability with Webtob/1.0 --- */
#define wbgethdr(wbsvc, key) wbGetHdr(wbsvc, key)
#define wbgetdata(wbsvc, key) wbGetData(wbsvc, key)
#define wbgetnthkey(wbsvc, nth) wbGetNthKey(wbsvc, nth)
#define wbgetnthdata(wbsvc, nth) wbGetNthData(wbsvc, nth)
#define wbgetdatacnt(wbsvc, nth) wbGetDataCount(wbsvc, nth)
#define wbgetval(wbsvc, key, nth) wbGetValue(wbsvc, key, nth)
#define wbkeyoccur(wbsvc, key) wbKeyOccur(wbsvc, key)
#define wbgetenv(wbsvc, key) wbGetEnv(wbsvc, key)
#define wbputhdr(wbsvc, key, value) wbPutHdr(wbsvc, key, value)
#define wbputstr(wbsvc, value) wbPutStr(wbsvc, value)
#define wbput(wbsvc, value, len) wbPut(wbsvc, value, len)
#define wbreturn(wbsvc, rval) wbReturn(wbsvc, rval)
#define wbPutProtocolStatus(wbsvc, sc, sm) wbSetStatus(wbsvc, sc, sm)
WebtoB Reference Manual WebtoB
TmaxSoft 267
struct wbsvcinfo {
char name[SVC_NAME_SIZE];
int method;
int protono;
int flags;
int len;
char *uri;
char *data;
};
typedef struct wbsvcinfo WBSVCINFO;
typedef struct {
char *name;
char *value;
char *domain;
char *path;
char *comment;
int maxage;
int version;
int secure;
} cookie_t;
typedef struct session_s SESSION;
#if defined (__cplusplus)
extern "C" {
#endif
/* ------------------ INIT/DONE API ------------------ */
int __cdecl wbSvrInit(int argc, char *argv[]);
int __cdecl wbSvrDone(void);
/* ------------------ ALLOC API ------------------ */
void *__cdecl wbMalloc(WBSVCINFO *wbsvc, int size);
int __cdecl wbFree(WBSVCINFO *wbsvc, void *ptr);
/* ------------------ GET API ------------------- */
#define wbGetAuthType(wbsvc) wbGetEnv(wbsvc, "AUTH_TYPE")
#define wbGetContentLength(wbsvc) wbGetEnv(wbsvc, "CONTENT_LENGTH")
#define wbGetDocumentRoot(wbsvc) wbGetEnv(wbsvc, "DOCUMENT_ROOT")
#define wbGetMethod(wbsvc) wbGetEnv(wbsvc, "REQUEST_METHOD")
WebtoB WebtoB Reference Manual
TmaxSoft 268
#define wbGetParsedURI(wbsvc) wbGetEnv(wbsvc, "PARSED_URI")
#define wbGetPathInfo(wbsvc) wbGetEnv(wbsvc, "PATH_INFO")
#define wbGetPathTranslated(wbsvc) wbGetEnv(wbsvc, "PATH_TRANSLATED")
#define wbGetProtocol(wbsvc) wbGetEnv(wbsvc, "SERVER_PROTOCOL")
#define wbGetQueryString(wbsvc) wbGetEnv(wbsvc, "QUERY_STRING")
#define wbGetRemoteAddr(wbsvc) wbGetEnv(wbsvc, "REMOTE_ADDR")
#define wbGetRemoteHost(wbsvc) wbGetEnv(wbsvc, "REMOTE_HOST")
#define wbGetRemoteIdent(wbsvc) wbGetEnv(wbsvc, "REMOTE_IDENT")
#define wbGetRemoteUser(wbsvc) wbGetEnv(wbsvc, "REMOTE_USER")
#define wbGetRequestURI(wbsvc) wbGetEnv(wbsvc, "REQUEST_URI")
#define wbGetScheme(wbsvc) wbGetEnv(wbsvc, "REQUEST_SCHEME")
#define wbGetScriptFilename(wbsvc) wbGetEnv(wbsvc, "SCRIPT_FILENAME")
#define wbGetScriptName(wbsvc) wbGetEnv(wbsvc, "SCRIPT_NAME")
#define wbGetServerName(wbsvc) wbGetEnv(wbsvc, "SERVER_NAME")
#define wbGetServerPort(wbsvc) wbGetEnv(wbsvc, "SERVER_PORT")
#define wbGetServerSoftware(wbsvc) wbGetEnv(wbsvc, "SERVER_SOFTWARE")
#define wbGetTranslatedURI(wbsvc) wbGetEnv(wbsvc, "TRANSLATED_URI")
char *__cdecl wbGetData(WBSVCINFO *wbsvc, char *name);
int __cdecl wbGetDataCount(WBSVCINFO *wbsvc);
long __cdecl wbGetDateHdr(WBSVCINFO *wbsvc, char *name);
char *__cdecl wbGetEnv(WBSVCINFO *wbsvc, char *name);
long __cdecl wbGetFileLen(WBSVCINFO *wbsvc, char *name);
char *__cdecl wbGetFileName(WBSVCINFO *wbsvc, char *name);
char *__cdecl wbGetHdr(WBSVCINFO *wbsvc, char *name);
int __cdecl wbGetHdrCount(WBSVCINFO *wbsvc);
int __cdecl wbGetIntHdr(WBSVCINFO *wbsvc, char *name);
char *__cdecl wbGetNthData(WBSVCINFO *wbsvc, int nth);
char *__cdecl wbGetNthHdr(WBSVCINFO *wbsvc, int nth);
char *__cdecl wbGetNthKey(WBSVCINFO *wbsvc, int nth);
char *__cdecl wbGetReqLine(WBSVCINFO *wbsvc);
char *__cdecl wbGetRequestURL(WBSVCINFO *wbsvc);
char *__cdecl wbGetValue(WBSVCINFO *wbsvc, char *name, int nth);
int __cdecl wbKeyOccur(WBSVCINFO *wbsvc, char *name);
/* ------------------ PUT API ------------------- */
int __cdecl wbPrint(WBSVCINFO *wbsvc, const char *fmt, ...);
int __cdecl wbprint(WBSVCINFO *wbsvc, const char *fmt, ...); /* for
Webtob/1.0 */
int __cdecl wbPut(WBSVCINFO *wbsvc, char *value, int len);
int __cdecl wbPutFile(WBSVCINFO *wbsvc, char *path);
int __cdecl wbPutHdr(WBSVCINFO *wbsvc, char *name, char *value);
WebtoB Reference Manual WebtoB
TmaxSoft 269
int __cdecl wbPutIntHdr(WBSVCINFO *wbsvc, char *name, int ivalue);
int __cdecl wbPutPartialFile(WBSVCINFO *wbsvc, char *path, int offset,
int sz);
int __cdecl wbPutStr(WBSVCINFO *wbsvc, char *value);
int __cdecl wbSetStatus(WBSVCINFO *wbsvc, int status, char
*status_msg);
/* ------------------ SEND API ------------------- */
int __cdecl wbFlush(WBSVCINFO *wbsvc);
void __cdecl wbReturn(WBSVCINFO *wbsvc, int rval);
int __cdecl wbSendError(WBSVCINFO *wbsvc, int status, char *msg);
int __cdecl wbSendRedirect(WBSVCINFO *wbsvc, char *location);
/* ------------------ COOKIE API ------------------ */
cookie_t *__cdecl wbCreateCookie(WBSVCINFO *wbsvc, char *name, char
*value);
cookie_t *__cdecl wbGetCookie(WBSVCINFO *wbsvc, char *name);
int __cdecl wbPutCookie(WBSVCINFO *wbsvc, cookie_t *cookie);
char *__cdecl wbCookieGetDomain(WBSVCINFO *wbsvc, cookie_t *cookie);
char *__cdecl wbCookieGetName(WBSVCINFO *wbsvc, cookie_t *cookie);
char *__cdecl wbCookieGetPath(WBSVCINFO *wbsvc, cookie_t *cookie);
char *__cdecl wbCookieGetValue(WBSVCINFO *wbsvc, cookie_t *cookie);
int __cdecl wbCookieGetVersion(WBSVCINFO *wbsvc, cookie_t *cookie);
int __cdecl wbCookieSetComment(WBSVCINFO *wbsvc, cookie_t *cookie,
char *comment);
int __cdecl wbCookieSetDomain(WBSVCINFO *wbsvc, cookie_t *cookie, char
*domain);
int __cdecl wbCookieSetMaxAge(WBSVCINFO *wbsvc, cookie_t *cookie, int
maxage);
int __cdecl wbCookieSetPath(WBSVCINFO *wbsvc, cookie_t *cookie, char
*path);
int __cdecl wbCookieSetSecure(WBSVCINFO *wbsvc, cookie_t *cookie, int
secure);
int __cdecl wbCookieSetValue(WBSVCINFO *wbsvc, cookie_t *cookie, char
*value);
int __cdecl wbCookieSetVersion(WBSVCINFO *wbsvc, cookie_t *cookie, int
version);
/* ------------------ SESSION API ------------------ */
char *__cdecl wbGetRequestedSessionId(WBSVCINFO *wbsvc);
WebtoB WebtoB Reference Manual
TmaxSoft 270
SESSION *__cdecl wbGetSession(WBSVCINFO *wbsvc);
int __cdecl wbIsRequestedSessionIdValid(WBSVCINFO *wbsvc);
long __cdecl wbSessionGetCreationTime(SESSION *session);
char *__cdecl wbSessionGetId(SESSION *session);
long __cdecl wbSessionGetLastAccessedTime(SESSION *session);
int __cdecl wbSessionGetMaxInactiveInterval(SESSION *session);
void *__cdecl wbSessionGetValue(SESSION *session, char *name, int
*len);
char **__cdecl wbSessionGetValueNames(SESSION *session, int *num);
int __cdecl wbSessionInvalidate(SESSION *session);
int __cdecl wbSessionIsNew(SESSION *session);
int __cdecl wbSessionRemoveValue(SESSION *session, char *name);
int __cdecl wbSessionSetMaxInactiveInterval(SESSION *session, int
interval);
SESSION *__cdecl wbSessionSetValue(SESSION *session, char *name,
void *value, int len);
/* ------------------ ETC API ------------------- */
int __cdecl wbGetErrno();
int __cdecl wbSaveFile(WBSVCINFO *wbsvc, char *name, char *path);
#if defined (__cplusplus)
}
#endif
#endif /* end of _WEBTOB_WBAPI_H */
3.2 Makefile 3.2.1 Compile
C 파일과 Pro*c 파일의 컴파일을 간단히 하기 위해 예제에서 사용한 script 파일
#!/bin/ksh
# program compile
#
#main
Param=$1
WebtoB Reference Manual WebtoB
TmaxSoft 271
case "$Param" in
c) export COMP_TARGET=$2
make -f Makefile.c;;
pc) export COMP_TARGET=$2
make -f Makefile.pc all;;
clean) make -f Makefile.pc
clean;;
*) echo "Usage: $0 argument";;
esac
3.2.2 Makefile.c
C 파일을 컴파일 하기 위한 Make 파일
# Server makefile
TARGET = $(COMP_TARGET)
APOBJS = $(TARGET).o
LIBS = -laps
OBJS = $(APOBJS) $(SDLOBJ) $(SVCTOBJ)
SVCTOBJ = $(TARGET)_svctab.o
CFLAGS = -O -I$(WEBTOBDIR)
APPDIR = $(WEBTOBDIR)/ap
SVCTDIR = $(WEBTOBDIR)/svct
LIBDIR = $(WEBTOBDIR)/lib
.SUFFIXES : .c
.c.o:
$(CC) $(CFLAGS) -c $<
$(TARGET): $(OBJS)
$(CC) $(CFLAGS) -L$(LIBDIR) -o $(TARGET) $(OBJS) $(LIBS)
rm -f $(OBJS)
$(APOBJS): $(TARGET).c
$(CC) $(CFLAGS) -c $(TARGET).c
$(SVCTOBJ):
touch $(SVCTDIR)/$(TARGET)_svctab.c
$(CC) $(CFLAGS) -c $(SVCTDIR)/$(TARGET)_svctab.c
clean:
-rm -f *.o core $(TARGET)
사용방법
$compile c “확장자를뺀 C 파일 Name”