Computer Science/Tech

[Tech] session/cookie 방식이란?

ooeunz 2019. 10. 13. 22:25
반응형

HTTP protocol의 특성

http protocal의 대표적인 특징 중 하나는 상태를 유지하지 않는다는 것이다.

클라이언트가 한번 요청을 하고 서버에서 응답을 하면 해당 클라이언트와 서버는 연결을 유지되지 않는다는 것이다.

 

위의 그림과 같이 http 프로토콜은 상태를 유지하지 않기 때문에 첫 번째 클라이언트의 요청에 대해서 서버가 응답을 보내면 똑같은 클라이언트가 두 번째 요청을 했을 때 서버에서는 두 번째 요청을 한 클라이언트가 첫 번째 요청을 한 클라이언트인지 인식하지 못한다.

 

이러한 특징 때문에 서버는 동시에 여러 개의 요청을 효과적으로 처리할 수 있지만 로그인, 장바구니 등 상태가 유지되어야 할 프로그램을 작성하기에는 무리가 있다.

 

이러한 단점을 보완하기 위한 방법이 바로 세션이다.

 

 


Session / Cookie 방식

  1. 세션은 서버가 가지고 있는 정보로써 보통 세션 저장소에 저장해둔다. (Redis를 많이 사용한다.)
  2. 유저가 로그인을 하게 될시 유저에게 고유한 ID를 부여해서(session) 저장소에 저장한 후 해당 세션과 연결된 세션 ID를 발급한다.
  3. 클라이언트에서는 인증이 필요한 요청이 있을 때 쿠키를 헤더에 넣어서 서버로 보낸다.
  4. 서버에서는 클라이언트에게서 받은 쿠키와 세션 저장소의 세션을 가져와 비교한 후, 일치한다면 로직을 수행한다. 

 

 

반응형