TIL: 32일차 "Cookie & Session"

mr.ginger·2021년 5월 7일

Cookie와 Session은?

Cookie와 Session은 HTTP의 특성이었던 Stateless와 큰 연관이 있다.
HTTP의 특성상 한번 요청과 응답 사이클이 종료 되면 연결이 끊어지고, 새롭게 응답을 받았을때 그 이전까지 있던 데이터가 사라지기에, 정보가 업데이트 되면 소스파일에 있지 않는 정보는 사라져 버리게 된다.
때문에, 우리가 입력하는 로그인등의 정보가 필요한 작업에 문제가 생기게 된다.

그걸 보완 하기 위해 생겨난것이 Cookie와 Session이다.

먼저 Cookie에 대해 설명하자면,

  • Cookie는 클라이언트가 지정하는 메모리 혹은 하드 디스크에 저장 된다.
  • Cookie는 Key와 Value 쌍으로 정보를 저장하는 text파일이다.
  • Cookie는 기본적으로 브라우저 종료시 사라지지만, 쿠키를 저장시 만료 시점을 정할 수 있다.
  • Cookie는 클라이언트에 저장 되고, 클라이언트쪽의 메모리를 사용한다.
  • Cookie는 최대 300개까지, 각 도메인당 20개까지, 하나의 쿠키는 4KB까지만 저장 된다.

와 같은 특징이 있다.
우리가 로그인을 하고 그 비밀번호를 저장하거나, 쇼핑몰 등에서 장바구니 정보가 남아있거나, 특정 팝업을 특정시간동안 뜨지 않게 하는등, 우리가 일상생활에서 쿠키를 접하는 곳은 생각보다 많다.

단, 쿠키가 좋은 점만 있는것은 아닌데, 서버로 요청을 보내거나 응답을 할때, 우리 저장소에 가지고 있는 쿠키값이 참조 되기에 외부에서 탈취 당할 가능성이 있다. 서버가 아니라 사용자의 컴퓨터에 저장 되는것도 위험 요소중 하나라 볼 수 있다.

이때문에 보안에 대해서는 뒤에 나올 Session에 비해 떨어진다는 단점이 있다.

다음은 Session이다.

  • Session은 사용자의 컴퓨터가 아닌, 서버측에 저장 되는 정보이다.
  • Session은 Key와 Value 쌍으로 이루어진 Object의 데이터형식을 취하고 있다.
  • Session은 브라우저가 종료되면 삭제된다.
  • Session은 서버에 저장 되기에, 서버의 메모리를 사용한다.
  • Session은 접속시에 서버에 의해 생성 되기에, 생성 제한이 없다.

라는 특징이 있다.

보안성에 대해서는 사용자의 컴퓨터가 아니라 서버에 의해 관리 되기에, Cookie보다는 보안성이 좋은 편이다.

단, Session은 서버에서 정보를 재참조 해야하고, 세션의 수가 늘어나게 되면 그만큼 사용 되는 서버의 메모리 부하가 커지기 때문에, Cookie보다는 속도가 떨어진다.

0개의 댓글