우선 기억해 -> JWT 는 stateless, Session은 stateful

이게 먼 말이뇨?
JWT는 상태가 없는, 무상태인 것
Session은 상태가 있는.
거라는 거시다
여기서 상태가 없다(stateless). 즉 상태를 갖지 않는다는 건 데이터가 없다는 뜻이다
stateless = Data 없음

로그인은 어떻게 동작하나? 로그인 했다는 걸 어떻게 아나욥?
HTTP의 특징 중 하나가 바로 stateless(무상태)라는 점이다.
이게 뭔 말이냐면, 요청들은 서로 독립적이라는 것이다
근데, 로그인은 사용자의 정보(데이터=상태)를 가지고 있는 거잖아..
따라서 누군가는 유저의 정보를 갖고 있어야 상태가 유지가 된다.

답은 둘 다!!!

JWT는 클라이언트가 상태를 갖고 있는거고
Session은 서버가 상태를 갖고 있다는 것이다.
먼저 정리를 하고 설명을 하자면
클라이언트(JWT-필요한 정보를 다 갖고 있는) ----> 서버
↑ 뭔 그림(이요?)이냐면, 클라이언트에서 서버로 보내는 매 요청마다 헤더에 JWT를 함께 보낸다.
설명 :
JWT는 그 안에 필요한 모든 정보를 다 갖고 있다.(그래서 토큰 보면 대체로 뚱뚱함) 즉, 상태를 다 들고 다닌다는 것.
그래서 JWT가 동작하려면, 클라이언트가 JWT를 갖고 있어야한다.
그러곤 JWT를 헤더에 매 요청마다 같이 보낸다.
근데 stateless라며.. 상태 없다며...상태 잇잖아..ㅅㅂ..
JWT가 모든 상태를 다 갖고 다니는데 뭔 무상태라는거야...

그 이유는 stateless의 주체가 서버라서이다.
서버 입장에서는 굳이 본인이 상태를 갖고 있는게 아니니까. JWT가 갖고있는건데 이제 요청이 들어올 때마다 알아서 JWT(상태=데이터값)이 들어오니까용
엄밀히 말해 클라이언트가 JWT를 대가리(header)에 박고 있으니..데이터를 다 갖고 있기 때문에 서버 입장에선 없는거지~ 라는 것
세션은 서버가 상태를 갖고 있죠?
그래서 DB에 유저 정보를 넣어두고, 로그인 시에 세션 키를 발급을 해준다.
그러면 클라이언트가 발급받은 세션 키를 갖고있는 것

