Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[13332] Re:Re:Web Server 변수 저장이 가능한지요... Session 하고 어떤 관계가 있는지
seg [] 1366 읽음    2010-07-16 18:24
친절한 설명 감사합니다. 그 의미는, tcp/ip는 "respond and forget?" 이와 비슷한 개념이라 일단 서버가 브라우저(클라이언트)의 요청 (request)에 반응하고 나면 브라우저의 변화에 관해 브라우저에서 요청이 있기 전에는 알 수 있는 방법이 없지만, 접속은 계속 유지를 하고 있다고 보면 되는 건가요?

그렇다면, 아래 (2) 번 단계에서 서버의 어떤 변수에 이 id 는 현재 1번 정보를 보냈다는 내용이 저장되어 있으면 (예컨대  Number := 1 처럼),
(3) 번 단계에서 client 가 서버에 request 할 때 그 내용에 "1번에 대한 반응이라는 정보"가 없어도 서버에서 이 client 가 1번 내용에 대한 반응이란 사실을 알 수가 있는 것인지요?

프로그램 구상에 꽤 중요하다고 생각되는데, 만약 위에서처럼 서버에서 브라우저에 보낸 정보를 기억할 수 있다면, 여러 개의 정보를 받아야 할 때 매우 간단해 지네요.

예를 들어

interface

type
   TwmDC = class(TWebModule)
       ppSurvey: TPageProducer;

       private
          i : integer;
         Data_Content : array of string;
              ....
   end; 


처럼 정의되어 있다고 치고,

앞 부분 어디서 i := 0  으로 initialize 합니다 (예컨대 log-in 한 순간이라든가).
그런다음

procedure  TwmDC.ppSurveyAction  (Sender: TObject; Request: TWebRequest;......);
begin
    inc (i);                                               <======================== 여기하고
    if ( i > lastnumber)  then    Response.content := ppThankYou.Content
                                  else    Response.Content := ppSurvey.Content;
end;

procedure TwmDC.ppSurveyHTMLTag(Sender: TObject; Tag: TTag;.... );
begin
       if TagString = 'DATA'   then ReplaceText := Data_Content[i];   <====== 여기가 핵심입니다 
end;


이런 식의 코딩이 가능하다는 것인지요? 

이게 안되면 ppSurvey  내에 어디 i 값을 hidden value 로 숨겨두고, ppSurveyAction 의 Request 에서 다시 값을 찾아서 하는 방법을 써야 하겠죠.




이프리뉴 님이 쓰신 글 :
: seg 님이 쓰신 글 :
: : 안녕하세요..
: :
: : 일단 질문의 요지는, tcp/ip 기반의 네트웤에서는 서버가 클라이언트의 요청에 반응하고 나면 클라이언트의 상태에 관해 알 수 없다고 하는데, 그렇다면 다시 그 클라이언트에서 요청이 올 때 다시 백지에서 시작해야 하는 것인가 라는 점에 관한 것입니다.
: :
: : 예를 들어, 클라이언트가 접속을 하면 1번, 2번, 이렇게 차례로 서버에서 정보를 보내 주고, 클라이언트는 확인하여 수정하거나 그대로 서버에 돌려보내면 서버는 다시 다음 번호의 정보를 보내 주는 방식입니다.
: :
: :     클라이언트 (브라우저)                                                    서버 (웹서버)
: :
: :   사용자 id 입력   (1) ----------------------->   그 id 의  1번 정보 추출
: :                            <----------------------  (2)    정보를 클라이언트에 보냄 
: :   1번 정보보고 답을 함   (3) --------------->    1번 정보를 처리
: :                                     (4) <--------------      2번 정보 추출
: :  2번 정보 보고 답을 함..  (5) -----------------> 2번 SAVE, 3번 추출....
: :
: :
: :    이런 순서가 되겠죠.
: :
: : (1) 번은 맨 처음 들어오는 거니까 사용자 정보가 반드시 필요하다고 가정하구요,
: :
: : 이 때 3번과 5번 같은 REQUEST 에 대해서도 클라이언트가 사용자 ID 에 대한 정보를 계속 보내야만 하는가입니다.
: : 아니면 서버의 프로그램에서, 예컨대 WEBBROKER 같은데서  user_id =   , last_number =  등과 같은 변수를 object 내에 만들어 두고 값을 저장해 두면,  같은 브라우저에서 계속 접속하면 그것이 해당 user_id 에 대한 것임을 서버가 알 수 있느냐 하는 점입니다. 만약에 안되면 계속 log-in 되어 있는 상태를 어떻게 알 수 있는지요?
: :
: : Session 이 이런 상황을 처리하기 위한 것인지?
: :
: : 답변에 대해 미리 감사드립니다.
:
:
: TCP/IP는 접속이 되면 종료가 되기 전까지는 접속상태를 유지합니다.
:
: 통신중에는 ID정보를 한번 주면 상대방이 접속이 유지되는 동안 그 정보를 가지고 있냐가 중요한 요소가 될 것 같습니다
:
: 패킷은 달라도 접속이 유지되어 그 정보에 특정 필드를 어떤식으로 가지고 있고 활용하느냐는 서버프로그램에서
:
: 결정될 듯 합니다.

+ -

관련 글 리스트
13329 Web Server 변수 저장이 가능한지요... Session 하고 어떤 관계가 있는지 seg 1341 2010/07/15
13365     Re:Web Server 변수 저장이 가능한지요... Session 하고 어떤 관계가 있는지 (자답자문) seg 1370 2010/07/28
13331     Re:Web Server 변수 저장이 가능한지요... Session 하고 어떤 관계가 있는지 이프리뉴 1326 2010/07/16
13332         Re:Re:Web Server 변수 저장이 가능한지요... Session 하고 어떤 관계가 있는지 seg 1366 2010/07/16
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.