Archive

Posts Tagged ‘session’

세션(session)과 웹서버

March 23, 2007 Leave a comment

사실 웹서버 측에서 본다면
유저가 언제 웹사이트를 떠났는지 즉 사용자의 세션이 언제 끝났는지…
만약 회원일때 로그아웃을 하지 않고 브라우저를 닫았을때와 같이 그 시점을 알수가 없다.

그래서 웹서버가 사용자의 세션을 무효화시킬지를 결정하는 방법을 보면,  

php의 세션 설정 항목중에
session.gc_maxlifetime 항목의 값을 수정해주는 방법
이 있다.
보통은 1440초 즉 24분으로 되어있는데 이걸 줄여주는 방법이다.

php의 세션 설정 항목중에
session.gc_probiblty 항목의 값을 수정해주는 방법
이 있다.
 이것은 이렇게 더 이상 의미없는 세션데이터를 삭제하는
실행주기를 설정하는 항목으로
기본값은 1로 되어있지만, 1이라함은 1%를 의미한다.
이값을 수정할 수 있다. 

Tags: ,

How? 세션(session) 저장,생성,등록,삭제,종료

March 23, 2007 1 comment

How1 :: 세션(session)을 저장하여라!

1.사용자의 데이터를 환경설정 파일(PHP.ini)에서 지정한 디렉토리에 파일로 저장하는 방식(default)

  • 필요요소 : 식별키, 저장 디렉토리, 저장할 내용
  • 식별키는 자유롭게 명명한다. 예를 들어 “A”라는 유저가 방문시 “test”라고 하는 식별키를 준다면 
    저장하고 싶은 디렉토리에 “sess_test”라는 새로운 파일이 생성된다.
  • 유저 “A”는 향후 다시 방문시 “sess_test”라는 파일을 참조하여 필요한 값을 찾아낸다는 것이다.
  • 그렇다면 무엇을 저장할 것인가?
    이것은 서비스와 관련된 사항이다, 보통 자동로그인을 위한 값을 저장한다.

2.서버의 파일이 아닌 서버의 메모리에 저장하는 방식

  • 파일로 저장하는 방법보다, 높은 성능을 기대할 수 있다고들 한다.
  • 접속한 유저의 시스템에 식별키를 발급할 때 32개의 문자열로 이루어진 세션 아이디를 생성한다는 점이 그 특징이다.
  • 그러나 서버관라등의 세밀한 기술적 요속 필요하다.

How2 :: 세션(session)을 생성해서 등록하여라!

1.세션(session) 생성함수 >> 세션(session) 시작을 알리는 함수!

  • <?
    session_start();
    ?>
  • 위의 함수는 정해져있는 룰이다. 마음대로 다른 표현을 쓰는 것이 아니다. 
  • 이렇게 세션함수를 호출하면 
    if   >>  유저의 시스템에 이전에 발급된 유효 세션이 있는지 확인하게 되고, 
    else if  >>  검사결과 이전값이 없다면, 새로 세션아이디를 생성하고 
    else if  >>  이전에 발급한 아이디가 있고, 유효하다면,
                       서버에 저장한 데이터를 그대로 사용하게 된다.
  • 이때 세션아이디는 기본적으로 PHPSESSID라는 이름을 갖는 변수에 저장됩니다.
    예를 들어 세션 아이디 값이 “test”라면
    쿠키 변수 $HTTP_COOKIE_VARS["PHPSESSID"]에 이 세션 아이디값이 저장되는 것이다.

2.세션(session) 을 생성하고 시작했다면 등록하자!

  • <?
    session_start();
    session_register(“key”);
    $key=”test”;
    ?>
  • 세션등록은 session_register라는 함수를 사용한다.
    이렇게 등록된 세션 파일 안에는 key|s:4:”test”; 이라는 내용이 들어가게 된다.
  • 위의 key라는 변수로 세션을 등록하였다.

How3 :: 세션(session)을 종료하고 삭제하여라!

1.세션(session) 의 삭제는….

  • 세션(session)을 삭제하려면,  session_unregister(“key”);이라고 쓰면 된다.

2.세션(session) 의 종료는….

  • 마지막으로 세션를 종료하려면 session_destory();라는 함수를 쓰면 된다.
  • 세션을 종료한다는 의미는 현재의 세션과 관련된 모든 데이터를 삭제한다는 의미이다.
    즉 이 함수를 호출한 사용자의 세션에 등록되어 있는 모든 데이터를 완전히 삭제한다는 뜻이다.
Tags: ,

Session의 의미와 구현원리

March 22, 2007 Leave a comment

*세션(Session)의 의미 : 어떤 유저가 어떤 특정 사이트를 접속하여 머물러 있는 시간.

웹서버는 서로 다른 유저들로부터 서버 내에 있는 페이지를 요청이 들어올 경우에 각 유저들의 컴퓨터에 유일무이한 식별키를 쿠키의 형태로 발급하여 해당 유저가 사용자의 정보 즉,  사용자의 로그인이나 기타 입력된 정보를 서버 내에 저장하여 유저가 다시접속하였을때 유저에게 발급한 식별키를 이용하여 서버쪽에 저장해놓은 정보(세션값)를 가져옴으로써 유저를 구별하는 원리로 구현된다고 볼수 있다.

*세션(Session)과 쿠키(Cookie)의 차이점

- 쿠키(Cookie) : 모든 유저나 회원들의 정보를 사용자의 시스템에 저장한다.
- 세션(Session): 유저의 데이터를 서버쪽에 저장하여 유저의 시스템에는 서버에 저장되어 있는 해당 사용자의 데이터를 찾아서 가져올 수 있는 식별키만를 저장하기 때문에 유저의 신상정보나 귀중한 정보가 밖으로 빠져나가는것을 막을수 있어 보안측면에서 좀더 안전하다.