쿠키 | 세션 |
차이점 | |
쿠키가 모든 데이터를 브라우저에 쿠키라는 형태로 저장하는 거 비해서 ->---> |
세션은
실질적인 데이터는 서버에 "파일"이나, "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는
전달된 ?(물음표) 뒤에 있는 파라미터를 이용해서,
그
사용자가 누구인지를 찾아 낼 수 있게 됩니다.
'■ PHP > Study1' 카테고리의 다른 글
[PHP] "다른 사람이 만든 웹 애플리케이션(프로그램)"을 "자신의 서버 컴퓨터"에서 설치해서 이용하는 방법 (0) | 2020.05.12 |
---|---|
[PHP] 세션 - (사용자상태유지) - 2 - (세션을 이용해서 로그인 기능 구현) (0) | 2020.05.12 |
[PHP] 쿠키 - (사용자상태유지) (0) | 2020.05.11 |
[PHP] 디버깅 하는 방법 - 1.설명 (0) | 2020.05.11 |
[PHP] 디버깅 하는 방법 - 3.xdebug (0) | 2020.05.11 |