HTTP 프로토콜은 request를 전송한 후, response를 수신하게 되면 연결을 끊는 **비 연결성(Connectionless)**의 특성을 가지고 있고 또한 request와 response에 대한 상태를 저장하지 않는 **비 상태성(Stateless)**의 특성이 있기 때문에 로그인 인증이 성공적으로 수행되었다 하더라도 서버 측에서는 매번 request를 수신할 때마다 이 request가 인증된 사용자가 보낸 request인지 알 방법이 없습니다.

이러한 HTTP 특성으로 인해 사용자의 인증이 성공적으로 이루어졌을 때, 인증된 사용자 request의 상태를 유지하기 위한 수단이 필요하게 되었으며 대표적인 수단이 바로 세션입니다.

세션 기반 자격 증명 방식

세션 기반 자격 증명 방식은 서버 측에 인증된 사용자의 정보를 세션 형태로 세션 저장소에 저장하는 방식입니다.

즉, 클라이언트 측에서 서버 측의 리소스를 요청하면 서버 측에서는 "서버 측 리소스를 요청하는 클라이언트에게 우리가 정보를 줘도 괜찮은가?"를 확인하기 위해 서버 측 세션 저장소에 저장된 세션 정보와 사용자가 제공하는 정보가 일치하는지 확인하는 방식입니다.

그렇다면 세션 기반 자격 증명은 어떠한 특성이 있는지 간단하게 확인해 보겠습니다.

✅ 세션 기반 자격 증명의 특징

세션 기반의 자격 증명 방식은 인증된 사용자의 상태를 유지하기 위한 전통적인 방식입니다.

그런데 세션 방식 이외에 현대적인 웹 애플리케이션에서 점차 많이 사용되고 있는 방식이 있는데, 그것은 바로 토큰 기반의 자격 증명 방식입니다.

✅ 토큰 기반 자격 증명의 특징