2019-03-12
어떤 브라우저가 서버에 접속? 연결요청?을 하면 서버에서 그 브라우저에게 고유 id를 부여하고, 쿠키에저장한다.
쿠키가 살아있는한, 서버는 그 쿠키(세션아이디)에 대응하는 세션걕체를 세션스토리지에 저장한다.(스토리지가 메모리라면 서버껐다켜면 날아감. 여러수단으로 보존가능)
(쿠키가 만료되거나, 삭제되거나, 서버에서 세션정보를 지우면 다시 세션을 맺어야한다)
브라우저가 다시 접속하면 쿠키에 아이디가 있고, 아이디를 서버에서 확인해 대응되는 세션객체를 꺼내준다. 여러 세션 운용가능.
한 사용자가 여러 클라이언트를 가질수도 있다. 예를 들어 크롬 브라우저와 Postman은 서버 입장에서 둘은 다른 클라이언트로 인식해 서로 다른 세션ID를 부여한다. 그리고 클라이언트끼리 서로 쿠키를 공유하지 않으므로 서버에서 각각의 session을 따로 destroy할 수 있다.
(나는 크롬 시크릿 탭이 각각 다른 클라이언트로 인식될 줄 알고 그렇게 시도했었는데 아니었고, 크롬과 Postman으로 해보니 서로 다른 세션ID를 부여받더라.)
관련 자료 모음.. 거의다 JWT네?