< 세션 >
▶ 세션이란?
![]() |
- 웹사이트의 여러 페이지에 걸쳐 사용되는 사용자 정보를 저장하는 방법
- 사용자가 브라우저를 닫아 서버와의 연결을 끝내는 시점
즉, 사용자가 특정 웹사이트에 접속하여 머물러 있는 시간
- 사용자의 상태를 관리하기 위해 필요
→ 세션 ID를 이용하여 사용자의 정보를 유지 및 관리
- 서비스가 돌아가는 서버 측에 데이터를 저장하고 세션의 키값만을 클라이언트에 남겨둠
→ 브라우저는 필요할 때마다 이 키값을 이용하여 서버에 저장된 데이터 사용
- 보안에 취약한 쿠키를 보완해주는 역할
※ 쿠키 : 특정 웹사이트를 방문했을 때 만들어지는 정보를 담는 파일 -> 상태정보 유지 기술
▶ 쿠키와 세션의 차이점
쿠키 | 세션 |
키와 값이 들어 있는 작은 데이터 파일 | 세션아이디를 인증받고 정보를 이용 |
방문자의 정보를 방문자 컴퓨터의 메모리 또는 파일에 저장 | 방문자의 정보를 서비스가 돌아가고 있는 서버에 저장 |
이름, 값, 만료날짜, 시간, 경로정보 등이 들어있음 | 발급받은 세션아이디를 쿠키로 저장 |
파일에 저장될 경우 탈취, 변조될 위험이 있고 스니핑에 당할 위험이 있어 보안에 취약함 |
클라이언트 정보 자체는 서버에 저장되어 있어 비교적 보안에 강함 |
브라우저를 종료하더라도 저장되어 있을 수 있음 | 세션 쿠키에 세션 아이디를 정한 경우 브라우저 종료 시 세션 아이디 삭제가 가능함 |
서버 요청 시 헤더를 바로 참조하면 되므로 속도가 빠름 | 세션아이디를 통해 서버에서 데이터를 다시 참조해야 하므로 속도가 비교적 느림 |
자동로그인, 쇼핑몰 장바구니 등 | 로그인 정보 유지, 사용자 인증 등 |
참고 출처 : jeong-pro.tistory.com/80
▶ 세션 사용방법
① 세션 시작
- session_start() 함수 : 새로운 세션 시작 or 기존의 세션 다시 시작
: 스크립트의 최상단에 위치해야 함
: 세션 아이디의 존재여부 확인
→ 존재 : 원래 있던 세션 변수 불러옴
→ 존재 X : 새로운 아이디 생성
※ 세션 아이디 : 웹 서버에 의해 무작위로 만들어진 숫자
: 세션이 유지되는 동안 클라이언트 측에 저장
: 세션 변수를 등록하는 키로 사용
② 세션 변수 등록
- $_SESSION["변수이름"] = " " : 세션 변수를 $_SESSION 배열에 등록
: 세션 변수의 이름(키값)을 서버에 저장
: 등록된 세션 변수는 한 세션이 끝날 때까지 유지
③ 세션 변수 접근
- print_r($_SESSION) : 세션에 등록된 데이터 출력
※ print_r() 함수 : 인수로 전달받은 변수의 정보를 읽기 쉬운 형태로 표시
④ 세션 등록 해지
- unset($_SESSION["변수이름"] : 세션 데이터 중 특정 변수 삭제
- session_unset() 함수 : 현재 등록된 모든 세션 변수 해지
- session_destroy() 함수 : 세션 아이디 삭제 (세션 자체 종료)
▶ 세션 관리 옵션
옵션 | 의미 |
session.auto_start | 자동으로 세션 시작 |
session.cache_expire | 세션 유지 시간 설정 |
session.cookie_domain | 다른 도메인 체계에 세션 변수 공유 |
session.cookie_lifetime | 세션아이디에 대한 쿠키의 유지 정도 설정 |
session.cookie_path | 세션 쿠키 설정 경로 |
session.name | 쿠키 이름으로 사용되는 세션의 이름 |
session.save_path | 세션 데이터가 저장되는 경로 |
session.cookie_secure | 쿠키가 안전한 접속을 통해서만 전송되게 할것인지 설정 |
session.hash_function | 세션아이디를 생성할 때 사용할 해쉬 알고리즘 설정 |
참고 출처 : intellegibilisverum.tistory.com/entry/%EC%84%B8%EC%85%98%EC%9D%B4%EB%9E%80
'2020-2 STUDY > Web Study' 카테고리의 다른 글
Web Study week 5 (0) | 2020.11.18 |
---|---|
Web Study week 2 - 2 (0) | 2020.09.23 |
Web Study week 1 (0) | 2020.09.16 |