COOKIE API

1. wbCreateCookie

wbCreateCookie는 새로운 Cookie를 생성한다.

초기의 이름과 값을 사용하여 새로운 Cookie를 생성한다. 유효한 이름과 값에 대한 규칙은 Netscape Cookie 명세와 RFC 2019를 참조한다.

  • 프로토타입

    #include <wbapi.h>
    #include <atmi.h>
    cookie_t* wbCreateCookie(WBSVCINFO *rqst, char *name, char *value)
  • 반환값

    wbCreateCookie()는 생성된 Cookie의 포인터를 반환한다.

  • 예제

    <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
    
    *SERVER
     html           SVGNAME = htmlg, MinProc = 1, MaxProc =2
     webapg         NODENAME = "tmaxh1", SVRTYPE = WEBSTD
    
    *SERVICE
     test           SVRNAME = createcookie
    
    *URI
     wbapi          Uri = "/svct/", Svrtype = WEBSTD
    
    *EXT
     htm            MimeType = "text/html", SvrType = HTML
    1. 환경파일(Config-file)을 컴파일한다.

      $wscfl –i createcookie.m
    2. 서비스 테이블을 생성한다.

      $wsgst
    3. 소스 파일을 생성한다. 다음은 요청을 처리하는 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);
       }
    4. WBAPI로 만들어진 c파일을, Makefile 파일을 이용하여 컴파일한다.

      $compile c createcookie
    5. 다음은 결과가 출력된 화면이다.

      브라우저로 WBAPI 서비스를 호출하면 다음과 같은 결과가 나온다.

      image

2. wbGetCookie

wbGetCookie는 브라우저에 의해 보내진 Cookie 중에서 원하는 Cookie를 반환한다.

요청의 일부로 브라우저에 의해 보내진 Cookie 중에서 name에 해당하는 Cookie의 포인터를 반환하는 함수이다. 만약 설정한 name에 해당하는 Cookie가 존재하지 않는다면 NULL을 반환한다.

name은 Cookie 중에서 사용자가 원하는 Cookie를 찾아내기 위해 설정하는 값이다.

  • 프로토타입

    #include <wbapi.h>
    #include <atmi.h>
    cookie_t *wbGetCookie(WBSVCINFO *rqst, char *name)
  • 반환값

    요청의 일부로 브라우저에 의해 보내진 Cookie 중에서 name에 해당하는 Cookie의 포인터를 반환한다. 만약 브라우저로부터 name에 해당하는 Cookie가 보내지지 않는다면 NULL을 반환한다.

  • 예제

    <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
    1. 환경파일(Config-file)을 컴파일한다.

      $wscfl –i getcookie.m
    2. 서비스 테이블을 생성한다.

      $wsgst
    3. 소스 파일을 생성한다. 다음은 요청을 처리하는 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);
       }
    4. WBAPI로 만들어진 c파일을, Makefile 파일을 이용하여 컴파일한다.

      $compile c getcookie
    5. 다음은 결과가 출력된 화면이다.

      브라우저로 WBAPI 서비스를 요청하면 다음과 같은 결과가 나온다.

      image

      [Submit] 버튼을 클릭하면 wbapi service test2를 호출하며 wbGetCookie의 결과를 보여준다.

      image

  • 관련 함수

    wbPutCookie()

3. wbPutCookie

wbPutCookie는 지정된 Cookie에 응답을 덧붙인다. 부가적인 Cookie는 여러 번 wbPutCookie()가 호출함으로써 덧붙여질 수 있다. Cookie가 HTTP 헤더를 이용하여 전송되기 때문에, Cookie는 어떠한 내용을 전송하기 이전에 응답에 덧붙여져야 한다.

  • 프로토타입

    #include <wbapi.h>
    #include <atmi.h>
    int wbPutCookie(WBSVCINFO *rqst, cookie_t *cookie)
  • 반환값

    정상적으로 수행될 경우 wbPutCookie()는 1을 반환한다. 에러가 발생하는 경우는 0을 반환한다.

  • 예제

    <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
    1. 환경파일(Config-file)을 컴파일한다.

      $wscfl –i putcookie.m
    2. 서비스 테이블을 생성한다.

      $wsgst
    3. 소스 파일을 생성한다. 다음은 요청을 처리하는 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);
       }
    4. WBAPI로 만들어진 c파일을, Makefile 파일을 이용하여 컴파일한다.

      $compile c putcookie
    5. 다음은 결과 출력에 대한 예이다.

      Telent로 WBAPI 서비스를 요청하면 다음과 같은 결과가 나온다.

       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
  • 관련 함수

    wbGetCookie()

4. wbCookieGetDomain

wbCookieGetDomain은 지정된 Cookie에서 도메인을 반환한다.도메인 패턴은 Cookie가 유효한 서버이다. 기본적으로 Cookie들은 Cookie를 저장하고 있는 호스트에 전달된다. 도메인 이름 패턴을 기술할 때 이것을 오버라이드한다. 패턴은 점(dot)으로 시작하고, 최소한 두개의 점(dot)을 포함해야 한다. 도메인 패턴에 대한 상세한 정보는 RFC 2109를 참고한다.

  • 프로토타입

    #include <wbapi.h>
    #include <atmi.h>
    char * wbCookieGetDomain(WBSVCINFO *rqst, cookie_t *cookie)
  • 반환값

    wbCookieGetDomain()은 Cookie에 지정된 패턴을 반환한다. 도메인이 지정되어 있지 않다면 NULL을 반환한다.

  • 예제

    <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
    
    *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
    1. 환경파일(Config-file)을 컴파일한다.

      $wscfl –i getdomain.m
    2. 서비스 테이블을 생성한다.

      $wsgst
    3. 소스 파일을 생성한다. 다음은 요청을 처리하는 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);
       }
    4. WBAPI로 만들어진 c파일을, Makefile 파일을 이용하여 컴파일한다.

      $compile c getdomain
    5. 다음은 결과가 출력된 화면이다.

      브라우저로 WBAPI 서비스를 요청하면 다음과 같은 결과가 나온다.

      image

  • 관련 함수

    wbCookieGetName(), wbCookieGetPath(), wbCookieGetValue(), wbCookieGetVersion()

5. wbCookieGetName

wbCookieGetName은 지정된 Cookie의 이름을 반환한다. 모든 Cookie는 유효한 이름과 값을 가지고 있다. wbCookieGetName()는 이런 Cookie의 이름을 알아낼수 있다. Cookie의 유효한 이름에 대한 상세한 정보는 RFC 2109를 참고한다.

  • 프로토타입

    #include <wbapi.h>
    #include <atmi.h>
    char * wbCookieGetName(WBSVCINFO *rqst, cookie_t *cookie)
  • 반환값

    wbCookieGetName()은 Cookie의 이름을 반환한다. 만약 유효한 Cookie가 아니라면 NULL을 반환한다.

  • 예제

    <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
    1. 환경파일(Config-file)을 컴파일한다.

      $wscfl –i getname.m
    2. 서비스 테이블을 생성한다.

      $wsgst
    3. 소스 파일을 생성한다. 다음은 요청을 처리하는 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);
       }
    4. WBAPI로 만들어진 c파일을, Makefile 파일을 이용하여 컴파일한다.

      $compile c getname
    5. 다음은 결과가 출력된 화면이다.

      브라우저로 WBAPI 서비스를 요청하면 다음과 같은 결과가 나온다.

      image

  • 관련 함수

    wbCookieGetDomain(), wbCookieGetPath(), wbCookieGetValue(), wbCookieGetVersion()

6. wbCookieGetPath

wbCookieGetPath는 Cookie의 경로를 반환한다. 얻어내는 값은 Cookie가 설정된 URI의 일부분이다. Cookie는 Cookie를 설정한 페이지 그리고 디렉터리의 모든 페이지에 전송된다.

  • 프로토타입

    #include <wbapi.h>
    #include <atmi.h>
    char* wbCookieGetPath(WBSVCINFO *rqst, cookie_t *cookie)
  • 반환값

    wbCookieGetPath()은 Cookie의 경로를 반환한다. Path가 지정되어 있지 않다면 NULL을 반환한다.

  • 예제

    <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
     test           SVRNAME = path
    
    *URI
     wbapi          Uri = "/svct/", Svrtype = WEBSTD
    
    *EXT
     htm            MimeType = "text/html", SvrType = HTML
    1. 환경파일(Config-file)을 컴파일한다.

      $wscfl –i path.m
    2. 서비스 테이블을 생성한다.

      $wsgst
    3. 소스 파일을 생성한다. 다음은 요청을 처리하는 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);
       }
    4. WBAPI로 만들어진 c파일을, Makefile 파일을 이용하여 컴파일한다.

      $compile c path
    5. 다음은 결과가 출력된 화면이다.

      브라우저로 WBAPI 서비스를 요청하면 다음과 같은 결과가 나온다.

      image

  • 관련 함수

    wbCookieGetName(), wbCookieGetDomain(), wbCookieGetValue(), wbCookieGetVersion()

7. wbCookieGetValue

wbCookieGetValue는 Cookie의 설정된 값을 반환한다. Cookie를 처음 생성할 때는 Cookie의 유효한 이름과 값으로 Cookie를 생성하는데 wbCookieGetValue()는 이때 저장된 값을 얻어낸다.

  • 프로토타입

    #include <wbapi.h>
    #include <atmi.h>
    char* wbCookieGetValue(WBSVCINFO *rqst, cookie_t *cookie)
  • 반환값

    wbCookieGetValue()는 Cookie의 값을 반환한다.

  • 예제

    <value.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
     value          SVGNAME = webapg, MinProc = 1, MaxProc = 2, 
    
    *SERVICE
     test           SVRNAME = value
    
    *URI
     wbapi          Uri = "/svct/", Svrtype = WEBSTD
    
    *EXT
     htm            MimeType = "text/html", SvrType = HTML
    1. 환경파일(Config-file)을 컴파일한다.

      $wscfl –i value.m
    2. 서비스 테이블을 생성한다.

      $wsgst
    3. 소스 파일을 생성한다. 다음은 요청을 처리하는 WBAPI 프로그램 예제로 파일명은 value.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);
              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);
       }
    4. WBAPI로 만들어진 c파일을, Makefile 파일을 이용하여 컴파일한다.

      $compile c value
    5. 다음은 결과가 출력된 화면이다.

      브라우저로 WBAPI 서비스를 요청하면 다음과 같은 결과가 나온다.

      image

  • 관련 함수

    wbCookieGetName(), wbCookieGetPath(), wbCookieGetDomain(), wbCookieGetVersion()

8. wbCookieGetVersion

wbCookieGetVersion은 Cookie의 버전을 반환한다.

  • 프로토타입

    #include <wbapi.h>
    #include <atmi.h>
    int wbCookieGetVersion(WBSVCINFO *rqst, cookie_t *cookie)
  • 반환값

    wbCookieGetVersion()는 Cookie의 버전을 반환한다. 만약 버전이 설정되어 있지 않았다면 버전의 기본값인 0이 반환된다.

  • 예제

    <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
    1. 환경파일(Config-file)을 컴파일한다.

      $wscfl –i version.m
    2. 서비스 테이블을 생성한다.

      $wsgst
    3. 소스 파일을 생성한다. 다음은 요청을 처리하는 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);
       }
    4. WBAPI로 만들어진 c파일을, Makefile 파일을 이용하여 컴파일한다.

      $compile c version
    5. 다음은 결과가 출력된 화면이다.

      브라우저로 WBAPI 서비스를 요청하면 다음과 같은 결과가 나온다.

      image

  • 관련 함수

    wbCookieGetName(), wbCookieGetPath(), wbCookieGetValue(), wbCookieGetDomain()

9. wbCookieSetComment

wbCookieSetComment는 Cookie의 주석 필드를 설정한다. 인수 comment는 Cookie의 원래 목적을 설명한다. 웹 브라우저는 이 문자열을 사용자에게 보여 줄 수도 있다. 주석은 버전 0의 Cookie에서는 지원되지 않는다.

  • 프로토타입

    #include <wbapi.h>
    #include <atmi.h>
    int wbCookieSetComment(WBSVCINFO *rqst, cookie_t *cookie, char *comment)
  • 반환값

    wbCookieSetComment()호출 성공하는 경우 1을 실패한 경우에는 –1 을 반환한다.

  • 예제

    <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
    
    *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
    1. 환경파일(Config-file)을 컴파일한다.

      $wscfl –i comment.m
    2. 서비스 테이블을 생성한다.

      $wsgst
    3. 소스 파일을 생성한다. 다음은 요청을 처리하는 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);
       }
    4. WBAPI로 만들어진 c파일을, Makefile 파일을 이용하여 컴파일한다.

      $compile c comment
    5. 다음은 결과가 출력된 화면이다.

      브라우저로 WBAPI 서비스를 요청하면 다음과 같은 결과가 나온다.

      image

  • 관련 함수

    wbCookieSetName(), wbCookieSetPath(), wbCookieSetValue(), wbCookieSetVersion(), wbCookieSetDomain(),wbCookieSetMaxAge(), wbCookieSetSecure()

10. wbCookieSetDomain

wbCookieSetDomain은 Cookie의 도메인을 한정짓는 패턴을 설정한다. 도메인 패턴은 Cookie를 보내야 하는 서버를 명확히 결정한다. 기본값으로 Cookie는 자신이 저장된 호스트에게로만 반환된다. 도메인 이름 패턴을 설정하기 위해서는 도메인 이름을 오버라이드 해야한다. 패턴은 반드시 점(dot)으로 시작해야 하고 적어도 2개이상의 점(dot)을 포함해야 한다.

  • 프로토타입

    #include <wbapi.h>
    #include <atmi.h>
    int wbCookieSetComment(WBSVCINFO *rqst, cookie_t *cookie, char *domain)
  • 반환값

    wbCookieSetDomain()호출에 성공하는 경우 1을 실패한 경우에는 –1 을 반환한다.

  • 예제

    <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
    1. 환경파일(Config-file)을 컴파일한다.

      $wscfl –i setdomain.m
    2. 서비스 테이블을 생성한다.

      $wsgst
    3. 소스 파일을 생성한다. 다음은 요청을 처리하는 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);
       }
    4. WBAPI로 만들어진 c파일을, Makefile 파일을 이용하여 컴파일한다.

      $compile c setdomain
    5. 다음은 결과가 출력된 화면이다.

      브라우저로 WBAPI 서비스를 요청하면 다음과 같은 결과가 나온다.

      image

  • 관련 함수

    wbCookieSetName(), wbCookieSetPath(), wbCookieSetValue(), wbCookieSetVersion(), wbCookieSetComment(), wbCookieSetMaxAge(), wbCookieSetSecure()

11. wbCookieSetMaxAge

wbCookieSetMaxAge는 Cookie가 종료되기에 전에 초(sec)단위로 Cookie의 최대 수명시간을 설정한다. 음수 값은 Cookie가 브라우저가 종료되는 즉시 소멸되어야 함을 의미한다. 0값은 브라우져가 Cookie를 즉각적으로 삭제할 것을 지정한다. 기본값은 –1이다.

  • 프로토타입

    #include <wbapi.h>
    #include <atmi.h>
    int wbCookieSetMaxAge(WBSVCINFO *rqst, cookie_t *cookie, int maxage)
  • 반환값

    wbCookieSetMaxAge() 호출에 성공하는 경우 1을 실패한 경우에는 –1을 반환한다.

  • 예제

    <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
     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
    1. 환경파일(Config-file)을 컴파일한다.

      $wscfl –i maxage.m
    2. 서비스 테이블을 생성한다.

      $wsgst
    3. 소스 파일을 생성한다. 다음은 요청을 처리하는 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);
       }
    4. WBAPI로 만들어진 c파일을, Makefile 파일을 이용하여 컴파일한다.

      $compile c maxage
    5. 다음은 결과가 출력된 화면이다.

      브라우저로 WBAPI 서비스를 요청하면 다음과 같은 결과가 나온다.

      image

  • 관련 함수

    wbCookieSetName(), wbCookieSetPath(), wbCookieSetValue(), wbCookieSetVersion(), wbCookieSetDomain(), wbCookieSetComment(), wbCookieSetSecure()

12. wbCookieSetPath

wbCookieSetPath는 Cookie를 위한 경로를 설정한다. 이는 Cookie가 전송되어야 할 URI의 일부이다. 만약 /user/han으로 Cookie를 설정한다면 기본적인 경로는 /user이 된다. 이 경로는 /user/aaa 또는 /user/bbb에게도 Cookie가 전송되어야만 한다는 것을 표시한다.

  • 프로토타입

    #include <wbapi.h>
    #include <atmi.h>
    int wbCookieSetPath(WBSVCINFO *rqst, cookie_t *cookie, char *path)
  • 반환값

    wbCookieSetPath() 호출에 성공한 경우는 1을 실패한 경우에는 –1을 반환한다.

  • 예제

    <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
    1. 환경파일(Config-file)을 컴파일한다.

      $wscfl –i setpath.m
    2. 서비스 테이블을 생성한다.

      $wsgst
    3. 소스 파일을 생성한다. 다음은 요청을 처리하는 WBAPI 프로그램 예제로 파일명은 setpath.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);
       }
    4. WBAPI로 만들어진 c파일을, Makefile 파일을 이용하여 컴파일한다.

      $compile c setpath
    5. 다음은 결과가 출력된 화면이다.

      브라우저로 WBAPI 서비스를 요청하면 다음과 같은 결과가 나온다.

      image

  • 관련 함수

    wbCookieSetName(), wbCookieSetComment(), wbCookieSetValue(), wbCookieSetVersion(), wbCookieSetDomain(), wbCookieSetMaxAge(), wbCookieSetSecure()

13. wbCookieSetSecure

wbCookieSetSecure은 Cookie가 SSL과 같이 보호되는 프로토콜에서 전송되어야 하는지를 설정한다. 기본값은 0으로 보호되지 않는 프로토콜에서도 Cookie 사용이 가능하다.

  • 프로토타입

    #include <wbapi.h>
    #include <atmi.h>
    int wbCookieSetSecure(WBSVCINFO *rqst, cookie_t *cookie, int secure)
  • 반환값

    wbCookieSetSecure() 호출에 성공한 경우는 1을 실패한 경우에는 –1을 반환한다.

  • 예제

    <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, 
    
    *SERVICE
     test           SVRNAME = secure
    
    *URI
     wbapi          Uri = "/svct/", Svrtype = WEBSTD
    
    *EXT
     htm            MimeType = "text/html", SvrType = HTML
    1. 환경파일(Config-file)을 컴파일한다.

      $wscfl –i secure.m
    2. 서비스 테이블을 생성한다.

      $wsgst
    3. 소스 파일을 생성한다. 다음은 요청을 처리하는 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);
       }
    4. WBAPI로 만들어진 c파일을, Makefile 파일을 이용하여 컴파일한다.

      $compile c secure
    5. 다음은 결과가 출력된 화면이다.

      브라우저로 WBAPI 서비스를 요청하면 다음과 같은 결과가 나온다.

      image

  • 관련 함수

    wbCookieSetName(), wbCookieSetPath(), wbCookieSetValue(), wbCookieSetVersion(), wbCookieSetDomain(), wbCookieSetMaxAge(), wbCookieSetComment()

14. wbCookieSetValue

wbCookieSetValue는 Cookie에 새로운 값을 설정한다. 버전이 0인 Cookie에서 Cookie 값은 공백, bracket, 그리고 괄호, 등호 기호, 콤마, 이중 인용, 슬래시, 질문 기호, 부호, 세미콜론을 포함해서는 안된다.

  • 프로토타입

    #include <wbapi.h>
    #include <atmi.h>
    int wbCookieSetValue(WBSVCINFO *rqst, cookie_t *cookie, char *value)
  • 반환값

    wbCookieSetValue() 호출에 성공한 경우는 1을 실패한 경우에는 –1을 반환한다.

  • 예제

    <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
    
    *URI
     wbapi          Uri = "/svct/", Svrtype = WEBSTD
    
    *EXT
     htm            MimeType = "text/html", SvrType = HTML
    1. 환경파일(Config-file)을 컴파일한다.

      $wscfl –i setvalue.m
    2. 서비스 테이블을 생성한다.

      $wsgst
    3. 소스 파일을 생성한다. 다음은 요청을 처리하는 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);
              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);
       }
    4. WBAPI로 만들어진 c파일을, Makefile 파일을 이용하여 컴파일한다.

      $compile c setvalue
    5. 다음은 결과가 출력된 화면이다.

      브라우저로 WBAPI 서비스를 요청하면 다음과 같은 결과가 나온다.

      image

  • 관련 함수

    wbCookieSetName(), wbCookieSetPath(), wbCookieSetComment(), wbCookieSetVersion(), wbCookieSetDomain(), wbCookieSetMaxAge(), wbCookieSetSecure()

15. wbCookieSetVersion

wbCookieSetVersion은 Cookie에 설정된 버전을 다시 지정한다.

  • 프로토타입

    #include <wbapi.h>
    #include <atmi.h>
    int wbCookieSetVersion(WBSVCINFO *wbsvc, cookie_t *cookie, int version);
  • 반환값

    wbCookieSetVersion() 호출이 성공인 경우에는 1을 반환한다. 만약 실패할 경우에는 0이 반환된다.

  • 예제

    <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
    1. 환경파일(Config-file)을 컴파일한다.

      $wscfl –i version.m
    2. 서비스 테이블을 생성한다.

      $wsgst
    3. 소스 파일을 생성한다. 다음은 요청을 처리하는 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);
       }
    4. WBAPI로 만들어진 c파일을, Makefile 파일을 이용하여 컴파일한다.

      $compile c version
    5. 다음은 결과가 출력된 화면이다.

      브라우저로 WBAPI 서비스를 요청하면 다음과 같은 결과가 나온다.

      image

  • 관련 함수

    wbCookieGetName(), wbCookieGetPath(), wbCookieGetValue(), wbCookieGetDomain()