Top Banner
WebtoB Reference Manual Copyright © 2005 Tmax Soft Co., Ltd. All Rights Reserved.
273

04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

Jan 18, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

WebtoB Reference Manual

Copyright © 2005 Tmax Soft Co., Ltd. All Rights Reserved.

Page 2: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 3: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 4: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 5: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 6: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 7: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

WebtoB Reference Manual WebtoB

TmaxSoft 5

Page 8: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 : 주어진 명령어 및 함수에 대한 사용 방법 요약 설명

Page 9: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

WebtoB Reference Manual WebtoB

TmaxSoft 7

Description : 명령어 및 함수에 대한 상세한 설명

Environment : 적용 가능한 시스템 설명

Example : 명령어 및 함수에 대한 이해를 위한 예제 설명

Error : 발생 가능한 오류 설명

See Also : 관련된 명령어 및 함수 설명

Page 10: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 문서에 각각 “없거나, 한 번”, “한 번 이상”, “없거나,

Page 11: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 12: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 13: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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’라는 이름의 파일로 생성된다.

Page 14: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 15: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 옵션을 주면 백업이 되는데, 이때 백업된 리스트는 고유한 번호인 버전을 가지는데, 버전과 생성된 날짜 그리고 환경 설정파일 명을 확인 할 수 있는 리스트를 볼 수 있다.

Page 16: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 절을 참조하여 각 서버별로 서비스 테이블을 생성한다. 이 테이블은 서버 프로세스에서 제공하는 서비스 명단으로써 서버 프로그램을 작성하여 컴파일 할 때 함께 컴파일 되어, 서버 프로세스 동작시에 서비스 위치를 찾는데 사용된다.

Page 17: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 18: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 를 사용한다.

Page 19: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 시스템이 여러 노드로 구성되었을 경우 이 옵션을 사용하지 않으면 하나의 노드에서 여러 노드를 관리할 수 있지만, 이

Page 20: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 번호

Page 21: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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) : 동작 중지된 서버 프로세스의 활동을 재개시킨다. 활동이 재개된 서버 프로세스는 큐에 대기중이던 서비스를 처리하기 시작하며 요청되는 서비스에 대해 처리 가능 상태가 된다.

Page 22: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 23: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 초간 수행하는 의미이다. 반복적인 명령어 수행은 상태 정보를 모니터링 할 뿐 아니라 업무수행에 대한 디버깅에도 많은 도움을 줄 수 있다.

Page 24: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 환경파일(예를

Page 25: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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’ 파일을 참조한다.

Page 26: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 27: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 개 이상 실행 되었어도 전체를 종료시킨다.

Page 28: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 29: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

WebtoB Reference Manual WebtoB

TmaxSoft 27

‘wsconfig2’ 환경파일을 참조하여 동작 중인 svr1 프로세스 하나만 종료한다.

1.7.6 See Also

wsdown, wscfl, WebtoB Administration Guide

Page 30: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 을 발생하면서 종료된다.

Page 31: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 32: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 33: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 는 대화형 연결을 종료하고 기다리고 있던 비동기성 응답들을 무시하며

Page 34: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 35: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 36: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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()함수를 이용하여 할당된

Page 37: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 38: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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);

}

Page 39: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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()함수를 호출하면 에러를 발생시킨다.

Page 40: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 41: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 42: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 이다.

Page 43: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 44: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 45: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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)

Page 46: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 47: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 48: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 를 호출하면 다음과 같은 결과가 나온다.

Page 49: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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)

Page 50: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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;

Page 51: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 한다.

Page 52: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 이다.

Page 53: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 54: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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)

Page 55: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 를 호출하면 다음과 같은 결과가 나온다.

Page 56: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 된 값을

Page 57: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 58: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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(),

Page 59: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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",

Page 60: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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);

Page 61: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 를 호출하면 다음과 같은 결과가 나온다.

Page 62: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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",

Page 63: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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>");

Page 64: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 를 호출하면 다음과 같은 결과가 나온다.

Page 65: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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,

Page 66: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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);

Page 67: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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>

Page 68: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 69: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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)

{

Page 70: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 를 호출하면 다음과 같은 결과가 나온다.

Page 71: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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",

Page 72: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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>

Page 73: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 74: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 를 이용할 것을 권한다.

Page 75: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 76: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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);

}

Page 77: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 한다.

Page 78: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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)

Page 79: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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)

Page 80: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 를 호출하면 다음과 같은 결과가 나온다.

Page 81: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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",

Page 82: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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)

{

Page 83: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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()

Page 84: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 85: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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);

}

Page 86: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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)

Page 87: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 88: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 89: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 된 값을

Page 90: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 91: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 를 호출하면 다음과 같은 결과가 나온다.

Page 92: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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",

Page 93: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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)

{

Page 94: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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()

Page 95: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 96: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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);

}

Page 97: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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)

Page 98: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 99: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 를 호출하면 다음과 같은 결과가 나온다.

Page 100: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 를 이용할 것을 권한다.

Page 101: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 을 생성한다.

Page 102: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 를 호출하면 다음과 같은 결과가 나온다.

Page 103: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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",

Page 104: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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>

Page 105: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 를 호출하면 다음과 같은 결과가 나온다.

Page 106: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 한다.

Page 107: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 108: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 109: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 에 호출되었으면 에러를 발생시킨다.

Page 110: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 111: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 112: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 113: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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");

Page 114: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 의 총 개수를 알아내기 위한 함수이다.

Page 115: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 116: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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()

Page 117: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 118: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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>

Page 119: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 120: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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)

Page 121: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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,

Page 122: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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>

Page 123: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 124: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 를 얻고 싶을 때 이

Page 125: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 126: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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>

Page 127: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 128: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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)

Page 129: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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>

Page 130: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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;

Page 131: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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()

Page 132: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 133: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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>

Page 134: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 135: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 한다.

Page 136: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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)

Page 137: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 138: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 를 명확하게 알아야 할 필요가 있을 때 유용하게 이용 할 수 있다.

Page 139: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 140: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 141: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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”이다.

Page 142: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 143: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 144: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 에서 파일의 이름을 얻을 때 이용된다.

Page 145: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 146: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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);

Page 147: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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()

Page 148: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 149: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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)

Page 150: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 를 호출하면 다음과 같은 결과가 나온다.

Page 151: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 한다.

Page 152: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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)

Page 153: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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()

Page 154: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 155: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 156: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 계열 함수들 보다 먼저

Page 157: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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,

Page 158: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 를 호출하면 다음과 같은 결과가 나온다.

Page 159: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 160: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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)

{

Page 161: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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)

Page 162: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 163: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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()

Page 164: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 165: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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);

}

Page 166: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 에게 전송한다.

Page 167: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 168: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 169: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 이면 파일 끝까지 읽어 보내준다.

Page 170: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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,

Page 171: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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);

Page 172: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 되었다면 정상.

Page 173: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 174: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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);

}

Page 175: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 를 찾아내기 위해 설정 하는 값이다.

Page 176: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 177: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 178: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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)

Page 179: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 한다.

Page 180: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 181: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 182: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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);

}

Page 183: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 를 참조.

Page 184: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 185: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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()

Page 186: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 187: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 188: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 189: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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;

Page 190: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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)

Page 191: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 192: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 를 요청하면 다음과 같은 결과가 나온다.

Page 193: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 194: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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);

}

Page 195: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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)을 포함해야 한다.

Page 196: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 197: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 를 요청하면 다음과 같은 결과가 나온다.

Page 198: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 199: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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);

}

Page 200: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 가 전송 되어야만 한다는 것을 표시한다.

Page 201: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 202: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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()

Page 203: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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,

Page 204: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 를 요청하면 다음과 같은 결과가 나온다.

Page 205: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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,

Page 206: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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);

Page 207: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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);

Page 208: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 을 생성한다.

Page 209: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 를 요청하면 다음과 같은 결과가 나온다.

Page 210: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 211: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 212: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 한다.

Page 213: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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)

Page 214: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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()

Page 215: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 216: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 를 요청하면 다음과 같은 결과가 나온다.

Page 217: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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",

Page 218: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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);

Page 219: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 한다.

Page 220: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 221: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 를 요청하면 다음과 같은 결과가 나온다.

Page 222: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 223: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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);

}

Page 224: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 분이다.

Page 225: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 226: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 를 요청하면 다음과 같은 결과가 나온다.

Page 227: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 228: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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;

Page 229: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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()

Page 230: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 231: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 232: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 233: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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)

{

Page 234: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 를 요청하면 다음과 같은 결과가 나온다.

Page 235: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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",

Page 236: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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);

Page 237: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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)

Page 238: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 239: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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)

Page 240: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 버튼을 클릭한다.

다시 버튼을 클릭한다.

Page 241: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 242: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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)

{

Page 243: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 버튼을 클릭한다.

Page 244: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 을 리턴한다.

Page 245: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 246: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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);}

Page 247: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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()

Page 248: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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,

Page 249: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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);

}

Page 250: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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>

Page 251: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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)

Page 252: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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)

Page 253: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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()

Page 254: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 255: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 를 요청하면 다음과 같은 결과가 나온다.

Page 256: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 인수로는 다음 값들이 사용될 수 있다.

Page 257: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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)

Page 258: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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"

Page 259: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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)

Page 260: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 한다.

Page 261: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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>

Page 262: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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);

Page 263: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 를 요청하면 다음과 같은 결과가 나온다.

Page 264: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 265: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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");

Page 266: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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 를 요청하면 다음과 같은 결과가 나온다.

Page 267: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 268: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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)

Page 269: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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")

Page 270: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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);

Page 271: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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);

Page 272: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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

Page 273: 04 WebtoB Reference Manual 41 - TmaxSoft환경이 unix라고 가정하고 있고, 사용자가 unix 환경 및 현재 사용되고 있는 각 unix 기종의 특성들에 기본지식이

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”