helloworld
Session 본문
JWT? Json Web Token..
?왜 사용되고 어디에 쓰는가..
web brower -> www.naver.com (get 방식) -> server .. 해당 주소에 맞는 컨트롤러의 메서드를 찾는다 -> 요청한 페이지에 맞는 html을 제공한다. header에 cookie에 session Id (ex: 1234) 담아서 준다.
cookie : 1234
쿠키영역에 처음 요청시에 세션아이디가 담김 , 이후 요청시에는 다시 생성하는 것이 아닌 1234를 그대로 돌려준다.
서버에서는 세션목록을 갖고 있고, 웹에서 보여주는 세션아이디와 비교 한다(?)
세션이 사라질 때
1. 서버쪽에서 세션을 날려버림. 서버에 있는 세션목록을 지움..
2. 사용자가 브라우저를 전부 종료. 종료시에 웹에 있는 쿠키(세션아이디)를 전부 지워버림. (서버에 있는 세션목록은 시간이 지나면 사라진다, 보통 30분정도)
클라이언트(클) 서버(서) 데이터베이스 (데)
클 -> 서버 -> 세션(세션아이디) -> 클 -> 로그인요청(아이디 : 세션아이디) -> 서 -> 데( 데이터 확인 ) -> 세션에 아이디 집어넣음 -> 클
세션을 사용하면 이러한 로직이 계속 돌고 있음. 세션을 통해 사용자 인증을 할 수 있고 민감한 정보에 접근할 때 세션을 통하여 확인할 수 있고 그에 관한 응답이 가능.
만약 서버가 100명의 세션을 관리 할 수 있는 서버가 있다고 생각해보자.. 근데 사이트의 규모가 커져 동시접속자가 300명이나 들어왔다. 100명 관리할 수 있는 서버를 2대를 더 설치하였고 사이트를 운영하였다. 서버를 각 a,b,c라고 생각하고 a서버에 갔다가 사람이 너무 많으면 b로가고 b도 너무 많으면 c로가는 형식으로 운영하였다.( 로드밸런싱이라고 한다..)
첫 접속시에 a서버에게 세션을 받고, b에게 가면 인증이 되지 못할 것이다. 이러한 점이 세션의 단점이다. 여러가지 파훼법은 있다지만 세션만의 고질적인 문제가 있다고 한다.
jwt는 무엇이고 왜 쓰고 언제쓰냐에 대해 공부하다보면 세션의 문제를 해결 할 수 있다고 한다. 홧팅!