1. PHP 쿠키
ㅇ 쿠키 : 사용자 웹브라우저에 관련시킨 정보로써, 모두 지속 관리,추적할 필요 있음
- 인터넷 웹 상에서, 서버측에서 관리하려는 상태정보를,
- 서버가 아닌 클라이언트측(인터넷 웹브라우저)에 저장하며,
- 서버측에서 필요시 마다 이를 지속성있게 활용하고자 할 때 사용
ㅇ 쿠키 설정 : setcookie(이름,값,만료시간,허용경로,도메인);
- 형식 : setcookie(name, value, expire, path, domain, secure, httponly);
. 이름 : 쿠키로 설정할 이름
. 값 : 배열 또는 숫자에 한 함 (복잡한 배열,데이터 구조는 불가능)
. 만료시간(선택) : 0 => 기본(웹브라우저 종료시),
통상 => time() + 60*60 (즉, 1 시간)
. 허용경로(선택) : / => 기본(해당 서버 내 모든 웹페이지의 요청에 쿠키 허용),
/~경로명/ => 홈 디렉토리 하부의 경로를 좀더 자세히 제한 설정 가능
. 도메인(선택) : 지정된 도메인 내 서버 만 쿠키 요청 가능토록 제한
ㅇ 쿠키 읽음 : $_COOKIE 배열 변수를 이용
※ [유의할점]
- 원칙적으로, 단일 웹페이지에서 쿠키 셋팅 및 읽음을 동시에 할 수 없으나
- 다음과 같이 다시읽기하면 가능함
<meta http-equiv="refresh" content="0; url=다시읽혀질웹페이지">
2. PHP 세션
ㅇ 세션 값(ID) : PHP Session ID
- 사용자 웹브라우저에는 단지 이 키 값(PHPSESSID) 만을 저장하고,
- 웹서버는 바로 이 쿠키 값(PHPSESSID)을 이용하여,
. 웹 클라이언트들을 식별하고,
. 각 웹 클라이언트별로 데이터 집합을 분리하고 유지하게 됨
ㅇ PHP 세션 관리
- 각 세션 마다(세션 ID 별로), 하나의 파일로 생성,저장,관리됨
- 웹서버 내 저장 디렉토리 : session.save_path (php.ini)
. (Windows 경우 디폴트) %TEMP% 또는 C:\Windows\Temp
- URL 사용자 디렉토리 : session.cookie_path (php.ini)
ㅇ PHP 세션 유효기간 (php.ini 에서 설정)
- session.cookie_lifetime (권장: 0, 브라우저 종료시까지 유효)
- session.gc_maxlifetime (권장: 1440 초)
. 이후 다음 두 값의 비(比)에 따른 확률에 의해 유효기간 정해짐
. 확률 = (session.gc_probability) / (session.gc_divisor)
ㅇ 세션 정보의 확인
- $_SESSION 배열 변수를 이용
. 동일 사이트 내 웹 페이지 간에도 정보를 공유할 수 있음
3. PHP 쿠키 및 세션 비교
ㅇ 단일 쿠키로 하나의 정보 씩을 유지관리하기에는, PHP 쿠키가 유리하나,
ㅇ 웹 클라이언트의 성향을 추적하는 복수의 많은 데이터 모음을 유지관리하려면,
ㅇ PHP 세션을 이용하는 것이 유리함