일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- BFS
- sql
- 알고리즘
- stack
- 웹기초
- 데이터엔지니어
- deque
- queue
- OLTP
- 프로그래머스
- QuickSort
- Data Engineering
- Cookies
- 분할정복
- PYTHON
- SQL스터디
- 퀵정렬
- 고득점KIT
- 탐색알고리즘
- Chatbot
- Merge sort
- 데이터파이프라인
- 병합정렬
- DFS
- 백준
- olap
- divide and conquer
- 데이터엔지니어링
- Sessions
- 챗봇
- Today
- Total
Trey
쿠키와 세션 본문
쿠키와 세션을 사용하는 이유?
- HTTP 프로토콜 환경의 2가지 특징이자 약점 즉, 1) stateless(통신이 끝나면 상태를 유지하지 않고), 2) connectionless(클라이언트의 요청을 받으면 연결을 끊어버리는 특징) 때문에 일어나는 이슈를 보완해주기 때문에 사용한다.
- (stateless, connectionless 내용 추가 예정)
쿠키 (Cookies)
쿠키란?
- 쿠키란 사용자가 웹사이트를 접속했을 때, 방문한 웹사이트의 서버에서 사용자(또는 클라이언트)의 브라우저를 통해 디스크에 저장하는 작은 텍스트형식의 파일이다.
- (세션쿠키와 지속쿠키 추가 예정)
쿠키의 용도
- 세션 관리 (session management) : 사용자의 접속 시간, 로그인 정보 등 서버가 알고 있어야 할 정보들을 저장한다. (인증이라고도 할 수 있다.)
- 개인화 (personalization) : 사용자마다 다르게 만들어지는 광고를 보여주기 위해 사용한다.
- 트래킹 (tracking) : 웹사이트 테마, 언어 설정과 같은 정보들을 저장한다.
쿠키의 특징
- 쿠키의 데이터는 key, value로 구성되며 문자열로 이루어져있다. (binary data아님)
: Name, Value, (optional) Attributes : expiration, domain, flags(ex - Secure, HttpOnly)
- 도메인 하나에 20-25개의 쿠키를 가질 수 있다.
- 브라우저 하나에 총 300개의 쿠키를 저장할 수 있다.
- 쿠키 하나의 용량은 4KB[4096bytes]로 제한된다.
- 웹사이트에서는 해당 웹사이트/도메인의 쿠키만을 읽을 수 있다. (ex - naver.com에서 google.com의 쿠키를 읽을 수 없음)
- 쿠키에는 방문한 사이트에 대한 정보와 개인정보가 저장되기 때문에, 보안 위험 및 사생활 침해의 소지가 있다.
쿠키 동작 방식
(이미지 및 설명 추가 예정)
세션 (Session)
세션이란?
- 상태 관리를 하지 않는 HTTP 프로토콜에서 사용자(클라이언트)의 상태 정보를 관리하기 위한 논리적 연결
세션의 용도
- 서버에서 생성되는 기본 객체로써, 요청을 보낸 웹 브라우저를 웹서버에서 구분(식별) 하기 위해 사용한다.
세션의 특징
- 세션의 유효한 기간은 브라우저가 서버와 계속 유지되거나, 서버에서 세션이 invalidate() 되기 전까지이다.
- session.setAttribute("Key", "Value")로 세션 값을 저장해 두고, 필요할 때마다 getAttribute(key)로 꺼내 쓸 수 있는 객체이다.
- 브라우저에서는 세션에 어떤 값이 들어있는지 알 수 없다. 세션 값은 서버에서만 확인 가능해야 한다.
세션 동작 방식
- 클라이언트(브라우저)에서 서버에 요청을 한다.
- 서버에서 클라이언트에 대한 데이터를 저장하고, 세션 객체를 생성한다.
- response로 쿠키에 세션 ID 쿠키를 포함하여 보내준다. (ex-Tomcat의 경우 JSESSIONID)
- 클라이언트는 response로 받은 세션ID 쿠키를 로컬에 저장한다.
- 클라이언트에서 요청을 할 때마다 쿠키 정보를 다 전달한다.
- 서버에서는 요청에서 쿠키 정보를 확인하고, SESSIONID라는 쿠키값을 이용해서 브라우저를 식별한다.
쿠키와 세션 비교
- (추가 예정)