웹 상에서 클라이언트와 서버가 정보를 주고 받는 방식을 규정하는 HTTP는 비연결 프로토콜(Connectionless Protocol), 비상태 프로토콜(Stateless protocol) 특성으로 인해 페이지의 상태를 기억하지 못한다. 이 때문에 사용자는 웹페이지에 접속할 때마다 새롭게 로그인하는 등 이전에 수행했던 작업을 반복해야할 수 있다.
이를 극복하기 위해 쿠키(Cookie)와 세션(Session)이 등장한다.
쿠키(Cookie)와 세션(Session)은 모두 웹 통신에서 필요한 정보를 저장하기 위한 방식이다.
- 쿠키(Cookie)
쿠키(Cookie)는 서버에 요청해서 사용자 PC에 저장하는 client의 정보/상태 등의 데이터를 의미한다.
쿠키(Cookie)에 포함되는 데이터에는 사용자 ID, 비밀번호, 방문한 사이트 등이 있다.
이 정보를 쿠키(Cookie)는 사용자의 PC에 저장되었다가, 사용자가 다시 해당 웹사이트에 접속할 때 쿠키가 클라이언트 Request header에 포함되어 요청 메시지(request)를 보내게 된다. 이를 통해 웹 서버가 사용자의 정보를 바로 파악할 수 있게 되는 것이다.
- 세션(Session)
쿠키(Cookie)가 사용자 PC에 저장된다면, 세션(Session)은 서버DB에 데이터를 임시로 저장하는 방식이다.
세션(Session)은 사용자가 웹사이트에 머무는 동안에만 서버DB에 사용자 정보를 저장한다.
사용자가 브라우저를 종료하면, 세션(Session)은 사라지는 정보다.
브라우저마다 최대 4KB의 데이터를 저장할 수 있는 쿠키(Cookie)와 달리 세션(Session)은 거의 무제한의 데이터를 저장할 수 있다.
참고
Tìm hiểu về Session và Cookie (viblo.asia)
Difference between Session and Cookies - GeeksforGeeks
'Computer Science > BackEnd' 카테고리의 다른 글
점프 투 장고 #1 | 벡엔드 프레임워크, 장고 시작하기 (0) | 2022.08.11 |
---|---|
Backend 기초 #3 | API, Rest API란? (Application programming interface) (0) | 2022.08.05 |
Backend 기초 #1 | HTTP HyperText Transfer Protocl이란? (0) | 2022.08.05 |
# 2 | PyQt5를 이용해서 레이아웃 배치하고 꾸미기 (0) | 2022.01.25 |
#1 | PyQt5를 이용해서 화면 구성하기 (0) | 2022.01.25 |