[Network] 쿠키와 세션

GyeongEun Kim·2022년 5월 19일
0

로그인 기능에 대해 공부하다 쿠키와 세션에 대해 정리하게 되었다.

쿠키와 세션을 쓰는 이유 ❓

Http protocolConnectionless하고 stateless한 특성을 가지고 있기 때문에 브라우저의 상태를 저장하고 유지하기 위해서 cookie와 session을 사용한다.

🍪쿠키 (Cookie)

'쿠키'란?

쿠키는 웹 사이트에 접속하면 생성되는 정보를 담은 작은 데이터 파일이다.

쿠키의 형태

쿠키는 key-value형태로 이루어져 있고, String으로 이루어져있다. 또한 브라우저마다 다른 값을 가진다(Chrome, IE, ...)

key -value 형태로 저장된 쿠키의 예시

(4번째 쿠키의 값은 암호화 되어있음)

쿠키의 저장

쿠키는 웹 브라우저를 사용하는 컴퓨터에 저장되고, 필요시에 이를 헤더에 붙여 서버측으로 보내 사용자를 식별할 수 있게 해준다. 쿠키의 유효시간을 명시적으로 지정하지 않는다면 쿠키는 브라우저에 계속 남아있게 된다.

쿠키의 사용

  • 아이디, 비밀번호 저장
  • 최근 본 상품
  • 일주일간 보지않기

쿠키의 단점

서버 측에 정보를 저장하는 것이 아니라 웹 브라우저에 저장하기 때문에 탈취가 쉽고, 마음대로 변경이 가능하다. 따라서 보안에 취약하다.

📌세션 (Session)

'세션'이란?

일정시간동안 같은 사용자에게서 오는 일련의 요청들을 하나의 상태로 보고, 이를 일정하게 유지하는 기술이다.

세션의 저장

세션은 쿠키와 달리 서버측에 저장되고 브라우저가 종료될때까지 유지된다.

세션의 사용

  • 로그인 유지
session.setAttribute("id","갱이");
session.getAttribute("id"); //갱이
session.removeAttribute("id"); //개별 삭제
session.invalidate(); //전체 세션 삭제

세션의 단점

서버측에서 식별 과정을 처리하므로 시간,속도에 대한 cost가 비싸다.

쿠키와 세션 비교하기

  • 저장 위치 : 쿠키는 클라이언트 쪽 로컬에 저장되지만 세션은 서버에 저장된다.
  • LifeCycle 측면 : 쿠키는 브라우저를 종료해도 남아있을 수 있지만 세션은 브라우저를 종료하면 삭제된다.
  • 보안 측면 : 서버에서 관리하는 세션이 더 보안성이 우수하다.
  • 속도 측면 : 세션은 요청마다 처리과정이 필요하기 때문에 더 느리다

다음에는 JWT로 돌아오겠습니다🥰

profile
내가 보려고 쓰는 글

0개의 댓글