티스토리 뷰

반응형

쿠키, 세션과 토큰의 차이점에 대한 정리

2022.04.19 - [Study/Web] - 쿠키, 세션(cookie, session)과 토큰 (token, JWT)의 차이점


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

HTTP 프로토콜은 2가지의 특징을 가지고 있다

1. 비연결지향(Connectionless)

클라이언트가 request를 서버에 보내면, 서버는 요청에 맞는 response를 보내고 접속을 끊는다.

(HTTP1.1 버전에서는 커넷견을 열어두고(연결을 유지하고) request에 재활용하는 기능이 추가되었다)

2. 상태정보유지안함(Stateless)

연결을 끊는 순간 클라이언트와 서버의 통신이 끝나며 상태 정보는 유지하지 않는다

 

그렇기 때문에 HTTP는 사용자의 요청마다 연결과 해제를 하고 연결 상태를 유지하지 않고 연결이 해제되면 상태 정보를 저장하지 않기 때문에 서버의 자원을 절약할 수 있다. 하지만 같은 사용자가 여러번의 요청을 할 경우 매번 새로운 사용자로 인식을 하게 되는 단점이 있다.

쿠키와 세션이 없으면 매번 어떤 요청을 보낼 때마다 로그인을 해야한다.

이러한 저믈 보완하기 위해 나온 기술이 쿠키와 세션이다

 

쿠키

클라이언트가 서버에 request를 보냈을 때 서버는 cookie를 생성한다

생성한 cookie는 response시에 클라이언트에 전송한다

넘겨받은 cookie는 클라이언트가 저장하고 있다가 다시 서버에 요청할 때 함께 전송한다

이때 변경할 쿠키 정보가 있으면 업데이트 후 재전송한다

재 방문시에 클라이언트의 메모리에 저장이 되어있다면 쿠키의 정보를 함께 request한다

 

- 사용 예시

로그인 페이지에서 아이디나 비밀번호 저장

팝업창 '하루 동안 보지 않기'

쇼핑몰 장바구니

 

세션

클라이언트가 서버에 요청을 하면 서버는 요청에 sessionid가 있는지 확인한다

sessionid가 없으면 sessionid 쿠키를 생성한 후 response 할 때 클라이언트에 보낸다

서버에서 클라이언트에 보낸 sessionid를 서버에 저장하여

클라이언트에서 요청시 sessionid가 쿠키에 함께 요청되기 때문에 sessionid쿠키를 사용하여 사용자를 확인한다

 

-사용 예시

로그인 상태 유지(새로고침이나 페이지 이동시에도 로그인 유지)

 

쿠키와 세션의 차이점

쿠키는 클라이언트에 저장, 세션은 서버에 저장

쿠키는 브라우저가 꺼져도 만료기간이 남아있다면 정보가 남아있다

세션은 만료기간이 남아있어도 브라우저가 꺼지면 사라진다

세션은 쿠키의 개념이 발전된 형태라고 보여진다, 서버에 저장되기 때문에 보안성이 더 좋다

하지만 서버에서 처리를 하기 때문에 접속자가 많을 경우 서버에 부하가 걸릴 수 있다

반응형

'Web' 카테고리의 다른 글

REST란?  (0) 2019.05.16
빠르게 훑어보는 웹 개발 트렌트  (0) 2019.05.12
Virtual DOM  (0) 2019.03.05
GET / POST 의 차이  (0) 2019.02.22
아파치 설치 하기  (0) 2018.08.11
댓글