[CS] 쿠키와 세션

쭈리·2023년 12월 5일

CS

목록 보기
1/3

서버와 클라이언트 사이의 통신은 음성 인공지능과 비슷하다. 아침마다 부르는 내 음성 비서 시리는 "시리야," 를 붙였을 때만 나의 말에 반응한다. 정작 고맙다는 말을 하고 싶어도 "시리야, 고마워" 라고 번거롭게 말해야한다.

시리야 너는 내 고마운 마음을 아니?

이와 비슷하게 서버와 클라이언트 사이의 통신은 연속적으로 이뤄지지 않고 한 번 통신 후 끊어지게 된다. 마치 내가 "시리야, "를 붙이듯, 서버는 클라이언트가 누구인지 계속 인증을 해줘야하는 번거로움이 있고, 이를 해결하기 위해 쿠키와 세션을 사용하게 된다.

이 내용을 요약해서

쿠키와 세션은 HTTP 프로토콜의 특징이자 약점을 보완하기 위해 사용하는 방법 중 하나이다.

라고 말할 수 있는데 HTTP 프로토콜에 대해서는 따로 정리하겠다.


🍪 쿠키(Cookie)

  • HTTP의 일종으로 사용자가 웹사이트를 방문하는 경우 그 사이트가 사용하는 서버에서 사용자의 컴퓨터에 저장하는 작은 정보 기록 파일
  • HTTP에서 클라이언트의 상태 정보를 클라이언트의 PC에 저장했다가 필요할 때 정보를 참조하거나 재사용할 수 있음

특징

  1. 이름, 값, 만료일(저장기간), 경로 정보로 구성되어있다.
  2. 클라이언트에 총 300개의 쿠키를 저장할 수 있다.
  3. 하나의 도메인 당 20개의 쿠키를 가질 수 있다.
  4. 하나의 쿠키는 4kb까지 저장 가능하다.

🖥 세션(Session)

  • 일정 시간동안 같은 사용자(브라우저)로부터 들어오는 일련의 요구를 하나의 상태로 보고, 그 상태를 유지시키는 기술
    (일정 시간이란 방문자가 웹 브라우저를 통해 웹 서버에 접속한 시점부터 웹 브라우저를 종료하며 연결을 끝내는 시점)
  • 세션에서는 방문자가 웹 서버에 접속해있는 상태가 하나의 단위

특징

  1. 웹 서버에 웹 컨테이너의 상태를 유지하기 위한 정보를 저장한다.
  2. 웹 서버의 저장되는 쿠키(= 세션 쿠키)
  3. 브라우저를 닫거나 서버에서 세션을 삭제했을 때만 삭제가 되므로, 쿠키보다는 비교적 보안이 좋다.
  4. 서버의 허용 안에서는 저장 데이터에 제한이 없다.
  5. 각 클라이언트에 고유 세션 아이디를 부여한다. 세션 아이디로 클라이언트를 구분해서 각 요구에 맞는 서비스를 제공한다.

정리

결국 쿠키와 세션 모두 재사용해야하는 데이터를 저장하고 필요할 때 추가 정보 요청 없이 꺼내 쓸 수 있게끔 하는 방법이다. 이 두 가지를 적절한 상황에 맞춰서 사용해야한다.

오늘의 질문

Q. 쿠키와 세션의 차이는 무엇인가요?

profile
화면 아래에 논리를 펼치는 프론트엔드 엔지니어 🐥

0개의 댓글