쿠키 & 세션
2023. 5. 14. 18:54ㆍweb
1. 쿠키
- 클라이언트(브라우저)에 저장되는 Text 정보
- 클라이언트의 컴퓨터 하드디스크에 파일의 형태로 저장된다. (브라우저마다 저장위치 다름)
- 크롬(MAC) : /Users/사용자명/Library/Application Support/Google/Chrome/Default
- 크롬(WINDOWS) : C:\Users\<자신의사용자계정명>\AppData\Local\Google\Chrome\User Data\Default
- 동작과정
- 웹사이트에 접속시도를 한다. ----> 클라이언트가 서버에게 http 요청을 보낸다.
- 웹사이트에 접속한다. ----> 서버가 클라이언트에게 http 응답을 보낸다. 이때 쿠키를 함께 보낸다.
- 들어가자마자 뜨는 광고를 "더이상 보지 않기" 한다. ----> 쿠키 정보 중 "광고보기"가 False로 설정된다.
- 새로고침을 하면 광고가 뜨지 않는다. ----> 클라이언트가 서버에게 http 요청 + 쿠키를 보낸다. 기존 쿠키에서 변경되었으므로 http 응답 + 쿠키를 함께 클라이언트에게 보낸다.
- 라이프사이클
- 각 쿠키에는 만료시간이 존재한다.
- 즉, 웹사이트가 닫혀도 쿠키의 만료시간이 아직 남아있다면 쿠키는 사라지지 않는다.
- 만료시간이 남아있더라도 만료시간을 0으로 브라우저든 서버든 변경시켜주면 만료된다.
- 특징
- 속도 빠름(서버 연산 x), 보안 취약함.
2. 세션
- 쿠키를 기반으로 동작하는 기술.
- 중요정보(세션)을 쿠키에 담아서 전송하고 싶은 경우, 중요정보의 ID값인 세션ID만을 쿠키에 저장해서 전송한다.
- 실제 세션은 DB에 저장된다.
- 동작과정
- 웹사이트에 접속시도를 한다. ----> 클라이언트가 서버에게 http 요청을 보낸다.
- 웹사이트에 접속한다. ----> 서버가 클라이언트에게 http 응답을 보낸다. 이때 쿠키를 함께 보낸다.
- 로그인을 시도한다. ----> 클라이언트가 서버에게 http POST 요청 보낸다.
- 로그인이 성공했다. ----> 서버가 클라이언트에게 http 응답 + 세션ID가 담긴 쿠키를 함께 보낸다.
- 새로고침을 해도 로그인이 유지된다. ----> 클라이언트가 서버에게 http 요청 + 세션ID가 담긴 쿠키를 보낸다. 서버에서는 쿠키에 담겨서 온 세션ID를 세션DB table에서 조회해서 있으면 http 응답 + 세션ID가 담긴 쿠키를 클라이언트에게 보낸다. 없다면 http 응답 + 세션ID가 없는 쿠키를 클라이언트에게 보낸다.
- 라이프사이클
- 세션도 쿠키의 일종이므로 만료시간이 존재한다.
- 즉, 웹사이트가 닫혀도 세션ID의 만료시간이 아직 남아있다면 세션ID는 사라지지 않는다.
- 만료시간이 남아있더라도 만료시간을 0으로 브라우저든 서버든 변경시켜주면 만료된다.
- 특징
- 속도 느림(서버 연산 o), 보안 비교적 강함.