-
[PHP] 쿠키와 세션이란? + 예제프로그래밍/PHP 2019. 10. 10. 19:54
쿠키(Cookie)란?
사용자가 웹 페이지에 접속할 때 웹 서버가 사용자의 컴퓨터에 저장하는 작은 양의 데이터
웹 페이지에서는 쿠키를 확인하여 로그인 상태나 장바구니에 상품이 담겨 있는지를 확인
웹 서버는 쿠키를 사용자의 컴퓨터에 저장한 뒤 쿠키가 필요할 때 사용자의 컴퓨터에 요청하고 사용자의 컴퓨터는 저장된 쿠키를 웹 서버에 전송
웹 서버 사용자의 컴퓨터 데이터의 위치 O 쿠키의 위치 O 데이터 가공 O 쿠키는 사용자의 컴퓨터에 텍스트 파일 형태로 저장되며 주로 다음과 같은 목적으로 사용
- 특정 웹 사이트를 재방문하거나 웹 사이트 내 다른 페이지 이동 시 다른 로그인 할 필요없음
- 사용자의 컴퓨터에서 아이디나 비밀번호 기억
- 사용자의 웹 페이지 이용 패턴 분석
쿠키 생성, 사용 예제
<?php // setcookie() 함수를 이용하여 'userid'라는 쿠키에 문자열 'transferhwang' 저장 // time() 함수를 이용하여 쿠키의 유효 시간 설정(초 단위) setcookie("userid","transferhwang"); setcookie("username","ㅎㅅㅎ",time()+60); ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <?php // isset() 함수를 통해 변수 값이 설정되어 있는지 판단, 설정되어 있으면 true, 설정되어 있지 않으면 false 반환 // 조건문이 true라면 쿠키의 값들을 $userid와 $username에 저장 // 조건문이 false라면 경고문 출력 if(isset( $_COOKIE["userid"] ) && isset( $_COOKIE["username"] ) ){ $userid=$_COOKIE["userid"]; $username=$_COOKIE["username"]; ?> userid 쿠키 : <?=$userid ?><br> username 쿠키 : <?=$username?><br> <?php } else{ ?> 쿠키는 생성되지 않음! <?php } ?> </body> </html>
쿠키 삭제 예제
<?php // setcookie() 함수를 이용하여 'userid'라는 쿠키에 문자열 'transferhwang' 저장 // time() 함수를 이용하여 쿠키의 유효 시간 설정(초 단위) setcookie("userid","transferhwang",time()-3600); setcookie("username","ㅎㅅㅎ",time()-3600); ?>
세션(Session)이란?
사용자의 컴퓨터에 정보가 저장되는 쿠키와 달리 세션(session)은 보안을 이유로 사용자의 컴퓨터와 웹 서버에 모두 정보를 저장
웹 사이트를 방문하는 사용자의 컴퓨터에는 세션 ID(SID)정보를 저장하고, 웹 서버에는 사용자의 컴퓨터 세션 ID에 대응되는 세션 정보를 저장
사용자의 컴퓨터 세션 ID가 유출되더라도 별다른 정보가 없고 주요 정보가 웹 서버에 저장되어 있기 때문에 쿠키보다 보안성이 강함
웹 서버 사용자의 컴퓨터 비고 데이터의 위치 O 세션 정보의 위치 O O 서로 대응되는 정보(같지 않음) 데이터 가공 O 세션 생성, 사용 예제
<?php // session_start()로 초기화해야 세션을 사용 가능 // 배열 형태의 전역 변수인 $_SESSION[]의 인덱스에 세션 변수의 이름을 넣어 등록 session_start(); $_SESSION["userid"]="transferhwang"; $_SESSION["username"]="ㅎㅅㅎ"; $userid=$_SESSION["userid"]; $username=$_SESSION["username"]; ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> 등록된 세션(userid) : <?=$userid?><br> 등록된 세션(username) : <?=$username?> </body> </html>
세션 삭제 예제
<?php // session_start()로 초기화해야 세션을 사용 가능 // 배열 형태의 전역 변수인 $_SESSION[]의 인덱스에 세션 변수의 이름을 넣어 등록 // unset() 함수를 사용하여 세션을 삭제 session_start(); // $_SESSION["userid"]="transferhwang"; // $username=$_SESSION["username"]="ㅎㅅㅎ"; // $userid=$_SESSION["userid"]; // $username=$_SESSION["username"]; unset($_SESSION["userid"]); unset($_SESSION["username"]); ?>
정리
쿠키(Cookie) : 클라이언트 메모리에 저장
세션(Session) : 서버 메모리에 저장
쿠키와 세션에 대해 더 자세히 알고 싶다면 아래 링크 참고!
https://transferhwang.tistory.com/669
출처 : 황재호, PHP 프로그래밍 입문, 한빛아카데미
'프로그래밍 > PHP' 카테고리의 다른 글
[PHP] 게시판 만들기 - 로그인 구현 (13) 2019.11.24 [PHP] 게시판 만들기 - DB 설계 (0) 2019.10.30 [PHP] 절대경로와 상대경로 (0) 2019.10.17 [PHP] XAMPP, 이클립스(Eclipse) 설치하기 (0) 2019.10.04 [PHP] HTTP란?, Form(POST,GET) 예제 (0) 2019.09.26