< 세션 >

 

▶ 세션이란?

 

 

출처 : https://medium.com/lotus-fruit/the-secret-life-of-browser-cookies-cc999e82dbf8

- 웹사이트의 여러 페이지에 걸쳐 사용되는 사용자 정보를 저장하는 방법

- 사용자가 브라우저를 닫아 서버와의 연결을 끝내는 시점

   즉, 사용자가 특정 웹사이트에 접속하여 머물러 있는 시간

- 사용자의 상태를 관리하기 위해 필요

   → 세션 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

+ Recent posts