Cookie와 Session은 HTTP의 특성이었던 Stateless와 큰 연관이 있다.
HTTP의 특성상 한번 요청과 응답 사이클이 종료 되면 연결이 끊어지고, 새롭게 응답을 받았을때 그 이전까지 있던 데이터가 사라지기에, 정보가 업데이트 되면 소스파일에 있지 않는 정보는 사라져 버리게 된다.
때문에, 우리가 입력하는 로그인등의 정보가 필요한 작업에 문제가 생기게 된다.
그걸 보완 하기 위해 생겨난것이 Cookie와 Session이다.
먼저 Cookie에 대해 설명하자면,
와 같은 특징이 있다.
우리가 로그인을 하고 그 비밀번호를 저장하거나, 쇼핑몰 등에서 장바구니 정보가 남아있거나, 특정 팝업을 특정시간동안 뜨지 않게 하는등, 우리가 일상생활에서 쿠키를 접하는 곳은 생각보다 많다.
단, 쿠키가 좋은 점만 있는것은 아닌데, 서버로 요청을 보내거나 응답을 할때, 우리 저장소에 가지고 있는 쿠키값이 참조 되기에 외부에서 탈취 당할 가능성이 있다. 서버가 아니라 사용자의 컴퓨터에 저장 되는것도 위험 요소중 하나라 볼 수 있다.
이때문에 보안에 대해서는 뒤에 나올 Session에 비해 떨어진다는 단점이 있다.
다음은 Session이다.
라는 특징이 있다.
보안성에 대해서는 사용자의 컴퓨터가 아니라 서버에 의해 관리 되기에, Cookie보다는 보안성이 좋은 편이다.
단, Session은 서버에서 정보를 재참조 해야하고, 세션의 수가 늘어나게 되면 그만큼 사용 되는 서버의 메모리 부하가 커지기 때문에, Cookie보다는 속도가 떨어진다.