쿠키와 세션을 사용하는 이유
1. HTTP
HTTP(Hypertext Transfer Protocol)는 인터넷상에서 데이터를 주고 받기 위해 서버/클라이언트 모델을 따르는 통신규약을 말한다.
이 HTTP의 두 특성, 비상태성(Stateless)과 비연결성(Connectionless)을 보완하기 위해 쿠키와 세션을 사용한다.
비상태성과 비연결성은 서버의 자원을 절약하기 위해 모든 사용자의 요청마다 연결과 해제의 과정을 거치게 되는데
때문에 연결 상태가 유지되지 않고 연결 해제 후의 상태 정보가 저장되지 않는다.
이로 인해 같은 사용자가 요청을 여러번 하더라도 매번 새로운 사용자로 인식한다는 단점이 있다.
예를 들어 로그인을 한 후 다른 여러 요청을 냈을 때 로그인 한 상태가 유지되지 않는다는 점이다.
이를 보완해주는 것이 쿠키와 세션이다.
2. 쿠키 (cookie) 🍪
쿠키는 클라이언트 로컬에 저장되는 key-value 쌍의 작은 데이터 파일이다.
쿠키에는 이름, 값, 만료 날짜(시간), 경로 정보 등이 담겨있다.
쿠키는 클라이언트의 상태 정보를 로컬에 저장해놨다가 요청할 때 참조된다.
3. 세션
세션은 쿠키를 기반으로 하고 있지만 로컬에 파일로 저장되는 쿠키와는 다르게 세션은 서버에 저장된다.
즉, 일정 시간동안 같은 브라우저로 들어오는 요청을 하나의 상태로 보고 그 상태를 유지하는 것이다.
클라이언트가 request를 보내면, 해당 서버의 엔진이 클라이언트에게 유일한 세션ID를 부여한다.
'프론트엔드 공통' 카테고리의 다른 글
Atomic Design Pattern: 아토믹 디자인 패턴 (0) | 2023.01.10 |
---|---|
styled-component의 고찰 (0) | 2023.01.06 |
[axios] - interceptors (0) | 2022.10.20 |