Web

Cookie와 Session, 왜 사용하지?

yujin0517 2024. 3. 20. 14:24
Cookie는 클라이언트 측에서 정보를 저장하고 전송하며, Session은 서버 측에서 정보를 유지하고 관리한다. 

 

Cookie와 Session은 왜 사용할까?

HTTP 프로토콜은 connectionless하고, stateless한 특징을 가지고 있다. 

HTTP 프로토콜은 클라이언트가 요청한 후 응답을 받으면 그 연결을 끊어 버리는 특성을 가진다. 또, 통신이 끝나면 상태를 유지하지 않는 특성을 가진다. 

때문에 서버는 클라이언트가 누군지 확인하는 과정이 필요하다.

Cookie와 Session을 사용하여 클라이언트를 확인한다. 

 

저장 위치, 만료 시점, 용량 제한, 보안, 속도, 예시

Cookie란?

  • 저장 위치

Cookie는 클라이언트의 상태 정보를 로컬(웹 브라우저)에 저장한다.

  • 만료 시점(라이프 사이클)

Cookie는 사용자 인증 유효 시간을 설정할 수 있으며, 유효 시간이 남아 있다면 브라우저가 종료되어요 인증이 유지된다.

expires 속성을 사용해 Cookie 유효 시간을 설정할 수 있다. 

  • 용량

300개까지 쿠키 저장이 가능하고, 하나의 도메인당 20개의 값을 가질 수 있으며, 하나의 쿠키 값은 4KB 까지 저장할 수 있다. 

  • 예시

자동 로그인, 로그인 시 아이디와 비밀번호 저장, 쇼핑몰 장바구니

 

Session이란?

  • 저장 위치

Session은 Cookie를 기반으로 하지만, 클라이언트의 상태 정보를 서버 메모리에 저장한다.

서버에서는 클라이언트를 구분하기 위해 세션ID를 부여한다.

  • 만료 시점(라이프 사이클)

클라이언트가 로그아웃을 하거나, 설정 시간 동안 반응이 없으면 무효화 되기 때문에 정확한 만료 시점을 알 수 없다. 또, 유효 시간이 남아 있다고 해도 브라우저를 종료하면 세션이 만료된다. 

  • 용량

Session은 클라이언트가 접속하면 서버에 의해 생성되기 때문에 용량 제한이 없다. 

  • 예시

사용자 인종, 사용자 상태 유지 및 보안 작업

 

Cookie VS Session

  Cookie Session
저장 위치 로컬(브라우저) 서버
보안 사용자 측에서 변경 가능하기에 변질이 우려됨, 스니핑을 당할 수도 있음 서버 측에서 관리하기 때문에 사용자 측에서 변경이 불가능해 비교적 안전
만료 시점(라이프 사이클) 만료 시점을 정확히 알 수 있음 만료 시점을 정확히 알 수 없음
용량 300개의 쿠키, 도메인당 20개의 값, 쿠키 당 4KB의 값 제한 없음
속도 비교적 빠름 서버에서 정보를 가져오기 때문에 비교적 느림

 

'Web' 카테고리의 다른 글

인증 방식이란? - API Key, OAuth, JWT  (0) 2024.03.20