세션(session) vs 쿠키(cookie)

binslog·2022년 12월 23일
0

왜 필요한가 ?

HTTP 프로토콜의 특징을 살펴보자
1. 비 연결 지향 ( connectionless ) :
서버는 요청에 대한 응답을 보낸 후 연결을 끊음
2. 무상태( stateless )
연결을 끊는 순간, 상태 정보가 유지되지 않음
한마디로 새로고침하면 날아감
이러한 특징들 때문에 "상태가 있는 세션" 을 유지하도록 하는 기법

쿠키 vs 세션


쿠키

브라우저(클라이언트) 에 저장되는 작은 데이터 파일

특징

  1. 인증이 유효한 시간 명시 가능
    => 시간이 정해지면 브라우저가 종료되어도 인증이 유지됨
  2. 브라우저에 저장됨
  3. 브라우저가 서버에 요청 시 Request Header 에 넣어서 서버에 전송

세션

"인증에 대한 ID 를 서버가 관리"
클라이언트에게 세션 ID 를 부여하고, 클라이언트는 요청 시 세션 ID 를 보냄

특징

  1. 브라우저가 종료할 때 까지 인증상태를 유지
  2. 쿠키와 똑같이 시간 명시도 가능 ( 일정 시간 응답이 없으면 삭제 )
  3. 사용자에 대한 정보가(세션 ID) 서버에 있기 때문에 보안에 좋음
    -> 사용자가 많아 질수록 서버 메모리를 많이 먹음
  4. 즉, 동시 접속자가 많으면 과부하를 주게 되므로 성능 저하의 원인이 됨
  5. 세션 ID 는 유일한 값
profile
개발자가 될 수 있을것인가?

0개의 댓글