[ASP 09.06] 03. ASP정리 상태 유지 !!

2010. 9. 5. 22:57Web/ASP

  쿠키: 쿠키는 인터넷 사이트를 방문했을때 사용자 기본 설정 등과 같은 정보를 사용자 컴퓨터에 저장할 수 있도록 해당 사이트에서 사용자 컴퓨터에 임의로 작성하는 파일이며 보통 뭐 아이디 같은것을 저장하고 있다. 쿠키는 쿠키를 생성한 웹사이트에서만 읽을수 있습니다.

사용되는 곳은 쿠키를 사용하면 장바구니, 회원로그인 등 사용자의 접속상황 추적과 설정 유지가 가능 쿠키 작성과 쿠키 검색에는 Response, Request 개체의 하위 컬렉션인 Cookie컬렉션이 사용됨

쿠키 컬렉션
  웹 어플리케이션의 어느 지점에서든지 사용 가능 쿠키에 키를 사용하면 배열과 같이 사용할  수 있다.
저장하기
 Response.Cookies("쿠키명")="값"
 Response.Cookies("user")("uid")="값"

사용하기
Request.Cookies("쿠키명")

하지만 쿠키를 통해 생성된 쿠키는 브라우져가 열려있는 동안이나 세션이 만료될 때 까지만 유지되며 여러 웹사이트에서 구현되고 있는 자동로그인 기능은 쿠키를 오랫동안 저장할 수 있도록 만료일자를 지정한것

  쿠키 저장을 위해서 Expires 속성을 사용한다.

 Response.Cookies("user").Expire="2004-09-01"
쿠키를 만료할 때
Response.Cookies("user").Expires=date()-1000

Application 개체는 웹사이트 전체를 통해 정보를 공유할때 사용되는 개체
  Application은 웹사이트에 방문한 사용자가 여러번 페이지를 검색했더라도 방문 횟수는 1회만 기록된다.
 Application("변수명")와 같은 형식으로 사용

Application 개체 컬렉션
  Application 개체에 저장된 변수에 대한 참조를 제공하는 컬렉션

 Contents Application 개체 내에서 저장된 모든 변수에 대한 컬렉션 
 StaticObjects  Application 개체 안에 저장된 Object 요소를 사용해서 정의한 모든 변수에 대한 컬렉션

Application 개체 메소드
  웹사이트 전체에서 사용되는 Application 개체의잠금과 변수값 삭제와 관련된 메소드를 제공
 Contents.Remove("변수명")  명시된 Application 변수를 컬렉션에서 삭제
 Contents.Remove.All  Application 개체 ㅐㄴ에 저장된 모든 변수값을 삭제
 Lock()  Application  개체를 잠그고 현재 접속자만이 Application 개체 변수의 값을 변경할 수 있도록 지정
 Unlock() Lock()메소드로 잠긴 Application개체 잠금상태를 해제

Lock과 UnLock를 이용하여 교착생태를 회피하기 위해 사용하였으며 다음과 같이 사용한다.

Application.Lock
Application("hit")=Application("hit")+1 
Application.Unlock

Remove는 변수의 내용을 삭제하고 RemoveAll은 컬렉션에 저장된 모든 항목을 모두 삭제 한다.
 Application.Contents.Remove("hit")
 Application.Contents.RemoveAll

Application개체 이벤트

 OnStart  첫번째 사용자가 웹 사이트에 접속하여 ASP 웹 사이트가 시작될 때 호출되는 이벤트 
 OnEnd  마지막 사용자가 웹 사이트 접속을 종료하여 ASP웹 사이트가 종료될 때 호출되는 이벤트


Session개체는 웹사이트에 접속한 개별 사용자와 웹사이트의 연결 상태를 관리하는 ASP내장 개체이다.

Session개체의 작동원리는 사용자가 접속시 이웹사이트가 처음 접속하면 세션이 시작된다. 그후 브라우저를 닫거나 마지막 페이지를 본 후 20분이 경과하면 세션은 자동으로 종료한다. IIS의 응용 프로그램구성 항목에서 세션제한 시간 변경가능하다.

IIS를 사용하면 ServerVariables.asp라는 파일을 제공하는데 여기에는 각각의 브라우저마다 다양한 특징을 볼수있다. 예를 들어 우리나라에서 접속했는지 외국에서 접속했는지 혹은 이 브라우저가 어떤것인지 알수 있다.

Session개체의 구성요소
  Application 개체와 마찬가지로 Contents와 Static Objects컬렉션이 있음
Session개체 메소드
Contents.Remove(변수명)  명시된 세션 변수를 컬렉션 에서 삭제
 Contents.RemoveAll()  세션 개체에 저장된 모든 변수를 삭제
 Abandon() 현재 사용자의 세션을 종료시킴 회원 로그아웃 기능에서 사용됨 

Session개체 속성
 CodePage 사용 로케일 언어에 알맞은 코드 페이지를 설정 
 LCID  동적 컨텐츠 표시를 위해 사용되는위치 식별자 결정 속성
 SessionID  세션이 시작될 때 서버에 의해 작성된 고유한 식별자인 세션 ID를 반환, Logn형의 숫자로 표시됨
 Timeout 세션만료 시간을 분 단위로 설정할 때 사용 

Session변수로 웹사이트에 접속한 각각의 사용자는 부여받은 세션개체에 여러가지 정보를 저장할 수 있음
저장된 정보는 사용자의 세션이 종료될 때 까지 세션 개체 내에서 유지됨
세션의 이런 특징을 이요하면 회원 로그인 장바구니 같은 기능을 구현할 수 있음