프로그래밍[Univ]/웹 프로그래밍

[PHP] PHP Session/Cookie

Cloud Travel 2011. 10. 15. 15:20
1. HTTP Cookie
 - Connection/State가 없으면 보안의 문제가 발생할 수도 있음
   (Connection/State가 없어서 여러 사람을 동시에 수용이 가능하다)
 - Cookie 작동원리
  > 사용자가 특정 html문서를 요청하면 서버에서 브라우저에 cookie를 세팅해서 돌려보냄. 
     ( Set-Cookie: name=value)
  > 그다음부터 html문서는 cookie를 해더에 달고선 서버에 접속을 하여, cookie값에 따라 다른 값을 보여줌.

2. Cookie in PHP
 - html요소들 보다 먼저 나와야한다.
 - Set:setcookie(name,value,expire,path,domain)을 주워서 세팅을하며,
    > name=value라고 서버(domain/path)에 알려주며, expire는 만기일이다. 
    > 일반적으로 path와 domain값은 생략하며, expire란에 공백을 주면 현재 세션까지만 유요하다.
       (현재 세션 : 브라우져가 닫히기 전)
   
3. Cookie의 단점 및 Session
 - Cookie의 단점
  > 데이터 값을 Client에 저장하므로 사용자가 Cookie값을 이용, 변경하여 사용이 가능하다.
     (정보유출/변경이 가능!!) 지원하지 않는 브라우저가 몇 있다.
 - Session
  > PHP처리기의 메모리를 활용하여 사용자에게는 Session ID만 알려주고 그외의 정보는 Server에 저장

4. Session 이용
 - session_start() : html보다 먼저 나와야 하며, Session아이디를 발급해준다.
 - 세션 변수의 저장 : $_SESSION['user'] = 'name';
 - 세션 삭제 : 특정 변수 : unset($_SESSION['user']); / 전체 삭제 : session_destroy();
  - 세션 변수의 이용 : 세션은 현재 세션을 다시시작하지 않는 이상 계속 지속된다. 이에따라서
                              사이트를 운영하는데 필요한 전역적인 변수를 저장했다 지우면서 사용하면 좋다.