개념
PHP의 세션에 대하여
ris
2024. 12. 20. 20:30
php로 게시판을 만드는 도중 세션 관련해서 궁금증이 생겨서 세션에 대해 정리해봤다.
php에서는 session을 연관 배열로 저장합니다.
이는 python의 딕셔너리와 비슷한 개념으로
예를 들어
session_start();
$_SESSION['username'] = 'ris';
$_SESSION['role'] = 'tester';
echo $_SESSION['username']; # 'ris'
echo $_SESSION['role']; # 'tester'
그리고 사용자는 session의 id만을 얻을 수가 있습니다.
php에서는 session의 키값을 보통 무작위로 생성하며 이 값은 PHPSESSID라는 쿠키에 저장됩니다.
session_start()로 세션이 없다면 id를 생성해주고 (값은 x)
세션을 생성합니다.
여기까진 누구나 다 아는 사실이지만
저는 저 'username'이 뭐하는 놈인지를 도저히 모르겠어서 찾아보기 시작했습니다.
근데 거의 없더라구요.
어쨌든 역할을 말하자면
세션 저장소나 서버에서 클라이언트의 session_id를 받아 사용자를 식별 후
php에서 그 값들 중 필요한 값을 서버에서 요청을 합니다.
이때 사용되는 것이 저 'username'입니다.
더 쉽게 도서관을 예로 들어보겠습니다.
도서관이 오픈을 했습니다.
그런데 도서관을 이용하기 위해선 카드키가 필요하다고 합니다.
그래서 카드키를 접수처에서 발급받고 책을 빌리려고 합니다.
필요한 책의 이름은 해리포터입니다.
당신은 수많은 책들 사이에서 '해리포터'라는 이름의 책을 찾아내어 마침내 대여했습니다.
조금 난잡한 예시였지만 여기서 각각 무엇을 뜻하는지 말씀드리겠습니다.
- 도서관 : 서버
- 카드키 : 카드키의 이름은 쿠키 이름이며 카드키의 내용 (식별할 값)은 session_id입니다.
- 책 제목 : 세션에서 사용자 정보를 저장하는 키 ex) username
- 책 내용 : sessoin의 값
그럼 끝!