5.SSJS의 기본


5.4 SSJS의 처리과정

  이 장에서는 SSJS가 서버에서 처리되어 브라우저로 보내지는 과정을 다시한번 자세히 설명한다. 한가지 명심해야할 사실이 있는데, SSJS는 즉, 서버에 올려져있는 모든 문서는 동시에 수많은 사용자들이 사용한다는 점이다. 이점을 간관해서는 안된다.

  • 사용자 구분

      웹 개발 환경에서 다중 사용자 환경은 매우 중요하다. 웹서버의 경우는 요청이 들어올 때, 그 요청이 동일한 사용자로부터 온 것인지, 아니면, 다른 사용자에게서 온 것인지등을 구분해야 한다.

      SSJS에서는 이러한 사용자의 구분, 즉, 브라우저에 대한 식별(그것을 사용하는 사용자의 구분)을 위해서 2가지 Object를 사용한다. 즉, request, client가 그것이다. 또한 모든 사용자에게 공통으로 적용하고 싶은 값을 담을 수 있는 global변수와 같은 기능의, project, server가 추가로 제공된다.

  • 처리과정 (Netscape사 자료 참조)

    • step1 Construct request object and construct or restore client object

        사용자의 정보와 관련된 사항(form tag입력사항, IP Address등)을 가지고, 새로운 request object를 구성한다. client object는 이미 존재하는 경우는 이를 보전하며, 없는 경우는 새로 생성한다.

    • step2 Find source page and start construction HTML page

        사용자가 요구한 URL을 찾아가면, WEB파일이 존재한다. 이 web파일은 여러 HTML파일을 가지고 있는데, 그중에 필요한 부분을 찾아서 새롭게 HTML파일로 구성한다. 이 때 작성되는 HTML page의 일부분들은 memory에 보관되며, 일정 크기가 될 때마다 자동으로 브라우저로 전송한다.

    • step3 Add to output buffer or execute code

        step2에서도 언급한 것처럼 Runtime engine이 HTML page를 구성하는데, 버퍼를 사용한다. 이 버퍼는 다음4가지 상황이 발생할 때까지는 계속 buffer에 정보를 보관하고 있게 된다.

      • 버퍼가 64KB가 될 때,
      • flush()함수가 호출될 때,
      • redirect()함수를 호출될 때,
      • 파일의 끝에 도달 했을 때


    • step4 Save client object properties

        HTML문서의 내용을 보내기전에 client object의 값을 일단 브라우저로 전송하게 된다. 이 step4는 하나의 html문서를 요청하고 브라우저에서 볼 수 있게 될 때까지 오직 한번만 수행된다.

    • step5 Send HTML to client

        실제 문서의 내용 즉, 버퍼에 기록된 내용을 브라우저로 보낸다. 실제로 step4의 정보가 가장 먼저 전송되고 그다음부터 step3과 step5의 계속적인 반복작업에 의해 브라우저에 HTML을 뿌리게 되는 것이다.

    • step6 Destory request object and save or destory client object

        request, client object는 파괴하고, project, server object는 계속 관리한다.

  사실 내용이 좀 어려울 것이다. 이해하면 좋지만 이해하지 못해도 좋다. 어차피 나중에는 이해하게 될 것이고, 앞으로 중간중간에 참고 설명이 계속 나갈 것이다. ( 나중에 한번 더 읽어보기 바란다. )

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

LiveWire 강좌
LiveWire란?
최초예제/동작원리
실행환경 준비
컴파일 및 실행
SSJS의 기본
     - Function
     - Classes/Objects
     - 사용 Tag
     - SSJS의 처리과정
기본 함수
Client To Server
     - FORM Tag
     - URL
Server To Client
     - FORM Tag
     - Cookie
Session
Client
Project/Server
File
Database
     - Database고려사항
     - Function/예제
기타
     - Stored Procedure
     - 외부함수호출
마치며

Copyright ⓒ 1997 ~, Deadfire Program Master