본문 바로가기
  • 살짝 구운 김 유나
Web/Django

쿠키와 세션

by yunae 2022. 9. 8.

HTTP

(Hyper Text Transfer protocol)

: HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜

 

request : 클라이언트(브라우저)에 의해 전송되는 메시지

responsse : 서버에서 응답으로 전송되는 메시지

 

특징)

1. connectionless

: 서버는 요청에 대한 응답을 보낸 후 연결을 끊음

ex)  네이버 페이지를 보고 있을 때 서버와 연결되어 있는 것이 아님. 서버는 페이지를 응답하고 연결을 끊음

 

2. stateless

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

- 클라이언트와 서버가 주고받는 메시지들은 서로 완전히 독립적

 

 

그렇다면 어떻게 로그인 상태를 유지할까?

-> 서버와 클라이언트 간 지속적인 상태 유지를 위해 "쿠키와 세션"이 존재

 

 

 

 

Cookie

: 사용자가 웹사이트를 방문할 경우 해당 웹사이트의 서버를 통해 사용자의 컴퓨터에 설치되는 작은 기록 정보 파일

1. 브라우저(클라이언트)는 쿠키를 로컬에 key-value의 데이터 형식으로 저장

2. 이렇게 쿠키를 저장해 놓았다가, 동일한 서버에 재요청 시 저장된 쿠키를 함께 전송

 

쿠키는 두 요청이 동일한 브라우저에서 들어왔는지 아닌지를 판단할 때 주로 사용됨

-> 사용자의 로그인 상태 유지 가능 (stateless 극복)

 

즉, 웹 페이지에 접속하면 웹 페이지를 응답한 서버로부터 쿠키를 받아 브라우저에 저장하고,
클라이언트가 같은 서버에 재요청 시마다 요청과 함께 저장해 두었던 쿠키도 함께 전송

 

쿠키 사용의 목적)

1. 세션 관리

- 로그인, 아이디 자동완성, 공지 하루 안 보기, 팝업 체크, 장바구니 등의 정보 관리

 

2. 개인화

- 사용자 선호, 테마 등의 설정

 

3. 트래킹

- 사용자 행동을 기록 및 분석

 

쿠키 사용

 

 

Session

: 사이트와 특정 브라우저 사이의 'state(상태)'를 유지시키는 것

 

클라이언트가 서버에 접속하면 서버가 특정 session id 를 발급하고, 클라이언트는 session id를 쿠키에 저장

-> 클라이언트가 다시 동일한 서버에 접속하면  session id가 저장된 쿠키를 서버에 전달-> 쿠키는 요청 때마다 서버에 함께 전송 되므로 서버에서  session id를 확인해 알맞은 로직을 처리-> session id는 세션을 구별하기 위해 필요하며, 쿠키에는 session id 만 저장

 

 

 

 

Session in Django

Django는 database-backed sessions 저장 방식을 기본 값으로 사용-> session 정보는 Django DB의 django_session 테이블에 저장

 

Django는 특정 session id를 포함하는 쿠키를 사용해서 각각의 브라우저와 사이트가 연결된 session을 알아냄

 

Django는 우리가 session 메커니즘에 대부분을 생각하지 않게끔 많은 도움을 줌

 

 

 

 

어디서 보든 같은 하늘이고 같은 달인게 좋다

 

장고 지짜 어렵닷,, 어리바리 공주는 정말이지 하루종일 헤매는중,,, 그래도 이번주로 장고 끝! 나머지 내용은 차근차근 업로드해보기.

이번 추석에는 장고 복습을 해야될지 알고리즘 예습을 해야할지 고민이 된다.

진짜 알람없이 잠들고 싶넹~

'Web > Django' 카테고리의 다른 글

pjt  (0) 2022.10.07
실습 - 1:N 을 활용한 app 작성  (0) 2022.10.06
Django Form  (0) 2022.09.07
render vs redirect  (0) 2022.09.05
Django Model 2 - QuerySet API  (0) 2022.09.02

댓글