Cookie와 Session에대해 알아보자.

HTTP Stateless Protocol

http 프로토콜은 상태를 유지하지 않는다. 이를 stateless protocol이라 한다.

HTTP 프로토콜은 요청을 전송하고, 응답을 전송받은 시점에서 통신이 종료되며, 어떠한 상태 정보도 남지 않는다. 따라서 로그인 인증 과정을 거친 이후 재차 접근하면 로그인 상태임을 인식 할 수 없으므로 매번 사용자 인증 과정을 반복해야하는 문제가 발생한다.

Session & Cookie

  • Cookie

쿠키는 웹서버가 브라우저를 통해 클라이언트에 일시적으로 데이터를 저장하는 방식. 웹서버에 접속한 클라이언트의 정보를 쿠키에 기입한 후, 클라이언트에 저장하면 이후 웹서버에 전송되는 요청에 쿠키내의 정보가 같이 전송되는 방식이다. 대신 보안에 취약해 아이디와 비밀번호를 쿠키에 저장하는 방식은 피하자.

  • Session

웹서버에 접속되어 있는 상태를 의미한다. 브라우저를 통해 서버에 접속한뒤 접속을 종료하는 시점까지를 세션이라고 한다.

즉 최초 접속에 생성되어 접속이 종료되면 삭제된다.

쿠키와는 달리 세션은 서버에 저장된다. 따라서 쿠키보다 안전하다.

  • Cookie-Based Session

쿠키에는 Session ID만을 저장하고 전송된 Session ID를 사용하여 Session에 저장된 정보를 사용하는 방법이다. 쿠키에 보안에 관련된 정보를 저장하는것은 옳지 않다.