쿠키와 세션

alllloha·2021년 9월 23일
0

쿠키와 세션을 사용하는 이유

HTTP 프로토콜 환경의 약점을 보완하기 위해 사용한다.

HTTP 환경의 특징
  • Connectionless
    클라이언트가 요청을 한 후 응답을 받으면 그 연결을 끊어버리는 특징
  • Stateless
    통신이 끝나면 상태 정보를 유지하지 않는 특징
    즉, 클라이언트와 첫번째 통신테서 데이터를 주고받았어도 두번째 통신에서는 이전 데이터를 유지하지 않는다.

위 두 특징에 따라 예를 들면 쇼핑몰에서 옷을 구매하려는 경우, 로그인을 했음에도 다른 페이지로 이동할때마다 다시 로그인을 해야하는 상황이 발생한다.

이를 해결하기 위해 쿠키와 세션이 사용된다.

쿠키와 세션

  1. 쿠키
  • 클라이언트(브라우저) 로컬에 저장되는 키와 값이 들어있는 작은 데이터 파일

  • 사용자가 따로 요청하지 않아도 request시에 자동으로 request header를 넣어서 자동으로 서버에 전송

  • 사용 예시
    - 방문 사이트에서 로그인 시, "아이디와 비밀번호를 저장하시겠습니까?"
    - 쇼핑몰의 장바구니 기능
    - 자동로그인, 팝업에서 "오늘 더 이상 이 창을 보지 않음" 체크

  1. 세션
  • 쿠키를 기반하고 있지만, 사용자 정보 파일을 브라우저에 저장하는 쿠키와 달리 세션은 서버측에서 관리

  • 사용자 정보를 서버에 저장하기 때문에 쿠키보다 보안에 좋지만, 사용자가 많아질수록 서버 메모리를 많이 차지하게 된다.

  • 사용 예시
    로그인 같이 보안상 중요한 작업을 수행할 때 사용

쿠키와 세션의 차이

CookieSession
저장위치클라이언트서버
저장형식textobject
만료시점쿠키 저장시 설정정확한 시점을 모름
리소스클라이언트의 리소스서버의 리소스
용량제한한 도메인 당 20개, 한 쿠키당 4KB제한없음
속도세션보다 빠르다쿠키보다 느리다
보안세션보다 안좋다쿠키보다 좋다
  • 세션의 만료시점
    클라이언트가 로그아웃하거나, 설정한 시간동안 반응이 없을경우 무효화 되기 때문에 정확한 시점을 알 수 없다.

참고자료

0개의 댓글