HTTP 프로토콜은 상태를 기억하지 않는 무상태성(Stateless)을 가집니다. 따라서 로그인 상태 유지나 장바구니 기능 등을 구현하기 위해서는 웹 애플리케이션 차원의 상태 관리가 필수적입니다. 데이터를 클라이언트(브라우저)에 저장하는 Cookie(쿠키)와 서버 메모리에 안전하게 저장하는 Session(세션)의 차이점과 활용법을 알아봅니다.
👉 세션과 쿠키 비교 📊
구분
세션 (Session)
쿠키 (Cookie)
저장 위치
웹 서버의 메모리 또는 파일
사용자의 클라이언트 (웹 브라우저)
보안성
높음 (서버에 저장되므로 탈취/위조가 어려움)
낮음 (사용자 PC에 노출되므로 조작 가능)
데이터 형태
서버 내 다양한 형태의 객체/배열
단순한 문자열 (텍스트 조각)
주요 용도
로그인 인증, 민감한 개인 정보 유지
'오늘 하루 보지 않기', 다크모드 설정, 장바구니 등
👉 세션(Session) 시작과 정보 관리
나를 기억해줘: 세션 🧠
웹 서버는 사용자가 누군지 기억하지 못합니다(Stateless). 세션은 서버 메모리에 사용자의 정보를 저장하여 로그인 상태 등을 유지하는 기술입니다.
모든 세션 사용 전에는 반드시 session_start()가 호출되어야 합니다.
👉 쿠키(Cookie) 설정 및 삭제
내 컴퓨터에 남는 흔적: 쿠키 🍪
세션이 '서버'에 저장된다면, 쿠키는 사용자의 웹 브라우저(로컬)에 저장되는 작은 텍스트 조각입니다. (예: "7일간 보지 않기", 장바구니)
Session vs Cookie 동작 원리
session.php
<?php
// 1. 세션 엔진 가동! (파일 맨 꼭대기에 위치해야 함)
session_start();
// 2. 세션 변수 굽기 (로그인 처리)
$_SESSION["userid"] = "admin123";
$_SESSION["role"] = "manager";
// 3. 세션 읽기
echo "현재 로그인된 아이디: " . $_SESSION["userid"] . "<br>";
// 4. 세션 삭제 (로그아웃 처리)
session_unset(); // 변수 비우기
session_destroy(); // 세션 완전 파괴
?>