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 |
댓글