쿠키 세션
차이점
쿠키가 모든 데이터를 브라우저에
쿠키라는 형태로 저장하는 거 비해서 ->--->

세션은
단지 이것이 누구인지를 
식별할 수 있는 식별자만을 
브라우저에 저장을 합니다.

 

실질적인 데이터는

서버에 "파일"이나, "DB"로

저장을 합니다.

 

쿠키는 모든 정보를 "브라우저"에 저장을 하기때문에

데이터가 유출될 수 있는 위험이

있습니다.

 

 

세션은

"사용자만의 식별자"만을

로컬에 저장하기 때문에

브라우저에 저장을 하기 때문에

 

 

실질적으로   프라이빗한 데이터들은

서버상에 존재하기 때문에

 

누군가가 세션만을 가지고는

사용자의 정보를  볼 수가, 훔쳐갈 수가 

어렵습니다!!!

 

 

 

"세션"이 보안적으로  "쿠키"보다는 더 안전 합니다.

 

 

 


 

 

 

 

세션이란?

 

- 여기서 말하는 세션은

어떤한 주제로   계속해서 연결되고 있는 시간을 세션이라고 합니다.

 

- SID(session ID)란?

세션부분에서 아까 위에서 계속 말하던 "사용자를 식별할 수 있는 식별자"가 SID(session ID)입니다.

 

- session_start()       -   (스크립트의 최상단에 위치해야 합니다)

 

- $_SESSION

 

- 데이터는 서버 내에 "파일"이나 "DB"에 저장을 합니다.

 

- 주로 사용자 인증시에 사용합니다.

 

 

 

 

 


 

 

 

 

세션 사용법

 

1. 세션 생성

코드 설명

session_save_path() 설명 :

이거 잘 사용안함,

이것은 사용자가 어떤 세션 데이터를 저장을 할 때,

 

예를 들면,

"title은 '생활코딩'이다"라고 하는 데이터를

모든 페이지에서 

가져오고 싶을 때,

 

"title은 '생활코딩'이다"이라는 것이

서버상에서 "파일"로 기본적으로 저장이 되는데,

 

어디에 그 "파일"을 저장할 것인지를 지정하는 것이 

session_save_path() 입니다.

 

 

 

session_start() 설명 :

세션을 사용하는 경우에 반드시,

스크립트의 초입부분에 작성을 해줘야 합니다!!

 

(만약에 초입부분에 안 작성하고,

화면이 출력되는 부분 이후에 session_start()를 호출을 하게 된다면,

 session_start()은 전달 할 때,

헤더라는 형태로 전달이 되기때문에,

에러가 납니다!!!프로토콜 위반입니다!!!!!)

 

그래서 session_start()는 반드시,

초입부분에 작성을 해주어야 합니다.

 

 

 

 

만약 위에있는 파일을 실행을 하다면,

아래 사진에 "쿠키탭"에서 세션이 하나 생성이 됩니다.

이 부분 때문에 생성이 되는 겁니다.

그리고 이 부분 때문에,

 아래 사진에서 session_basic.php와 같은 디렉토리 위치에 있는 session 디렉토리 안에다가 

"session 데이터 파일"을  저장한다는  뜻 입니다.

 

 

 

 

 

session 디렉토리 파일을 보면 (밑에 사진)

세션이 발급되면서,   세션ID에 해당되는  파일이  들어가게 됩니다!!!

(아까 위 브라우저에서 "PHPSESSID의 값"으로 되어 있는 "파일명"이 만들어 지게 됩니다  =  sess_PHPSESSID의 값)

 

 

 

 

 

그리고 이제

위에 있는  그림에 만들어진 파일 안에 데이터를 보며는,

 

 

 

아까 session_basic.php 파일 안에 적어놓은

 

이것 토대로

 

인덱스는 title,

값은 생활코딩

 

이라고 

 

 

sess_ibgj38t21gg7rsn6m0197aee61 파일 안에

데이터가 저장되어 있다.

 

 

 

 

 

 

2. 세션 데이터 사용

 

코드 설명

session_basic.php

 

session_basic2.php

session_basic.php 설명 :

아까 했던거 바꾼거 없음

(session_basic.php 파일은 세션 설정 해주는 코드)

 

 

 

 

 

session_basic2.php 설명 :

(session_basic2.php 파일은 세션을 가져와서 사용하는 코드)

5줄 설명 - 세션 이름 중에 'title'인거 값을 출력해줌.

6줄 설명 - 해당 세션ID의 파일 내용을 화면에 출력해줌.

 

결과

 

(띄어쓰기 그런거 안함.. 일단, 이렇게 나온다는거)

 

 

 

 

 

 

 

 


 

 

 

 

그리고 세션과 관련해서는 쿠키를 사용하지만,

쿠키라는 것은 모든 브라우저에서,

사용할 수 있다는 것을 보장 할 수가 없습니다.

 

그런 경우에는

php는  "쿠키"가 아니라,   "파라미터"를 이용하기도 합니다.

 

 

 

 

(밑에 그림)

만들어진 or 이미 존재하는 세션의 값을 뒤에 파라미터로 붙여서,

현재 사용자가 누구인지에 대한 

식별자를 "url파라미터"로 전달을 할 수가 있습니다.

 

 

그래서, 페이지를 이동을 할 때마다,

url의  ?(물음표)  뒤에 있는 파라미터를   따라가면서

사용하는 사람이 누구인지를   계속해서, 서버에게 알려주게 되는 겁니다.

 

 

그러면, php는

전달된 ?(물음표)  뒤에 있는 파라미터를 이용해서,

사용자가 누구인지를 찾아 낼 수 있게 됩니다.