JWT만 사용해봐서 세션을 잘 모르는 것 같다. 세션은 기본인데 좀 알아보자.
1. 세션의 기본 개념
1.1 HTTP의 무상태성(Stateless) 이해
HTTP는 기본적으로 무상태(Stateless) 프로토콜이다.
- 서버는 클라이언트의 각 요청을 독립적으로 처리하며, 이전 요청의 정보를 기억하지 않는다.
- 예를 들어, 사용자가 로그인한 뒤 다른 페이지를 요청할 때, 서버는 사용자가 로그인한 상태인지 알 수 없다.
[문제점]
- 이 무상태성 때문에 사용자의 상태(로그인 여부, 장바구니 정보 등)를 유지하려면 추가적인 메커니즘이 필요하다.
1.2 세션(Session)의 정의
세션은 사용자의 상태를 서버 측에 저장하여 무상태성을 극복하는 방법이다.
- 서버는 사용자에게 고유 세션 ID를 부여하고, 해당 세션 ID를 통해 사용자의 데이터를 연결한다.
- 세션 ID는 주로 쿠키나 URL 파라미터를 통해 전달된다.
[세션의 특징]
- 사용자별 고유성 : 세션 ID로 각 사용자를 구분한다.
- 서버 관리 : 세션 데이터는 서버에서 관리되므로 보안이 상대적으로 뛰어나다.