PHP 쿠키, PHP 세션

(2023-09-30)

PHP Session ID, PHP 쿠키 세션


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 세션을 이용하는 것이 유리함

[PHP]1. PHP   2. PHP 기초 문법   3. PHP 및 HTTP   4. PHP 정규표현식   5. PHP 쿠키/세션   6. PHP 내장 웹서버   7. PHP 환경 설정   8. PHP 객체지향   9. PHP DB 접속  

  1. Top (분류 펼침)      :     1,594개 분류    6,533건 해설

"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"
     [정보통신기술용어해설]       편집·운영 (차재복)