쿠키, 세션은 HTTP프로토콜에서 Connectionless, Stateless를 유지할 수 있게해주는 기능이다. 통신이 종료된다 하여도 클라이언트의 정보를 유지해 서비스를 제공할 수 있게 해주는 개념이다.

먼저 쿠키에 대해 알아보자.

쿠키?

쿠키는 사용자 인증이 유효한 시간을 명시할 수 있으며, 유효시간이 정해질 경우 브라우저가 종료되어도 인증이 유지된다는 특징을 갖게된다. 쿠키의 경우 클라이언트의 상태정보를 로컬에 저장했다가 다시 참조하는 방식으로 동작하며 하나의 쿠키값은 4KB까지 저장할 수 있다.

구현은?

Response Header에 Set-Cookie속성을 사용하며 클라이언트에 쿠키 전송해줄 수 있다.

쿠키는 사용자가 따로 요청하지 않아도 브라우저가 Request시 RequestHeader에 넣어 자동으로 서버에 전송한다.

정리하자면 서버는 Response헤더에 쿠키를, 클라이언트는 Request헤더에 쿠키를 담아 통신한다.

쿠키의 구성요소는 다음과 같다.

쿠키의 동작방식은 다음과 같다.