Tags
- 17-55
- 대만여행
- fdr-x3000
- 우리fisa
- 대만
- 수요미식회
- 축복렌즈
- 군산
- 제주도
- 해리포터
- SQL
- 카페
- 우리fis아카데미
- Python
- 전주
- 맛집
- 도쿄
- 사진
- 글로벌소프트웨어캠퍼스
- 시청
- 축복이
- CS231n
- ai_엔지니어링
- 건담
- 전시
- 650d
- 여행
- 우리에프아이에스
- 오사카
- k-디지털트레이닝
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Today
- Total
Recent Posts
300x250
브렌쏭의 Veritas_Garage
[WEB_HTTP] Cookie와 Session 본문
쿠키와 세션
HTTP(HyperText Transfer Protocol)
- HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜(규칙, 약속)
- 웹에서 이루는 모든 데이터 교환의 기초
- 비연결지향(connectionless) : 서버는 응답 후 접속을 끊음
- 무상태(stateless) : 접속이 끊어지면 클라이언트와 서버 간의 통신이 끝나며 상태를 저장하지 않음
Cookie(쿠키)
- HTTP 쿠키 : 클라이언트의 로컬에 저장되는 "키-값"의 작은 데이터 파일
- 세션을 유지하는 방식 중 가장 대표적인 방식
- 클라이언트 측 저장: 쿠키는 사용자의 브라우저에 저장되는 작은 데이터 조각입니다.
- 세션 ID 저장: 사용자를 식별하기 위한 고유한 값을 저장하며, 이를 통해 서버는 사용자를 식별하고 상태를 유지합니다.
- 전송 방식: 이후 클라이언트가 서버에 요청을 보낼 때, 브라우저는 자동으로 쿠키를 포함하여 서버로 전송합니다. 이를 통해 서버는 클라이언트를 식별할 수 있습니다.
- 보안: 쿠키는 클라이언트 측에서 조작될 수 있으므로 민감한 정보를 직접 저장하지 않습니다.
- 웹 페이지에 접속하면 요청한 웹 페이지를 받으며 쿠키를 로컬에 저장하고, 클라이언트가 재요청시마다 웹 페이지 요청과 함께 쿠키 값도 같이 전송합니다.
- 기본적으로 브라우저는 수천개, 수만개를 가질 수 있습니다.
- 하지만, 웹 사이트를 방문할 때마다 갖고 있는 모든 쿠키를 전달하는 것이 아니라, 보낼 웹사이트 주소를 적어놓은 Domain이라는 데이터에다가 해당 웹사이트에서 발급한 쿠키만 포함해서 요청을 보냅니다.
- Cookie Lifetime :: 파기시점 존재 유무로 구분
- Session Cookie
- 현재 세션(current session)이 종료되면 삭제
- 브라우저는 현재 세션이 종료되는 시기를 정의
- 일반적으로 브라우저를 종료할 떄 함께 삭제되는 쿠키
- 일부 브라우저는 다시 시작할 떄 세션 복원(Session Restoring)을 사용해 계속 지속될 수 있도록 함
- Persistent Cookie
Expires
속성에 지정된 날짜 혹은 Max-Age 속성에 지정된 기간이 지나면 삭제- 브라우저를 종료하거나 컴퓨터를 재시작하더라도 남아있는 쿠키
- Session Cookie
Session(세션)
- 사이트와 특정 브라우저 사이의 "state"(상태)를 유지시키는 것
- 서버 측 저장: 세션은 사용자와 관련된 데이터를 서버 측에 저장하는 방식입니다.
- 세션 ID: 서버는 각 사용자를 식별하기 위해 고유한 세션 ID를 생성합니다. 이 세션 ID는 클라이언트 측의 쿠키에 저장되고, 서버는 이 ID를 통해 사용자의 세션 데이터를 조회합니다.
- 상태 관리: 세션을 통해 사용자의 로그인 상태, 장바구니 정보 등 상태를 관리합니다. 사용자가 요청할 때마다 해당 세션 ID를 기반으로 서버가 사용자의 상태를 파악하고 필요한 정보를 제공합니다.
- 보안: 세션 데이터는 서버에 저장되기 때문에 클라이언트가 직접 접근하거나 조작할 수 없습니다.
- 클라이언트가 서버에 접속하면 서버가 특정 session id를 발급합니다.
- 클라이언트는 이 session id를 쿠키를 사용해서 저장하고, 서버는 클라이언트의 session id를 통해 클라이언트를 식별합니다.
MIDDLEWARE
- HTTP 요청과 응답 처리 중간에 작동하는 시스템
- 주로 데이터 관리, 애플리케이션 서비스, 메시징, 인증 및 API 관리를 담당
Cookie와 Session의 차이점
- 저장 위치: 쿠키는 클라이언트에 저장되고, 세션은 서버에 저장됩니다.
- 보안: 쿠키는 클라이언트에 저장되기 때문에 보안에 취약합니다. 세션은 서버에 저장되기 때문에 비교적 안전합니다.
- 용량: 쿠키는 클라이언트에 저장되기 때문에 용량이 제한적입니다. 세션은 서버에 저장되기 때문에 용량이 제한적이지 않습니다.
- 수명주기: 쿠키는 만료 날짜를 지정할 수 있습니다. 세션은 클라이언트가 종료되거나 서버에서 세션을 삭제할 때까지 유지됩니다.
- 속도: 쿠키는 클라이언트에 저장되기 때문에 서버에 요청을 보낼 때마다 쿠키가 함께 전송됩니다. 세션은 서버에 저장되기 때문에 클라이언트에 저장된 쿠키보다 빠릅니다.
- 저장 형식: 쿠키는 텍스트 형식으로 저장됩니다. 세션은 객체 형식으로 저장됩니다.
Cookie를 사용하는 이유
- 상태 유지: 사용자가 웹 사이트를 방문할 때마다 사용자를 식별하고 상태를 유지하기 위해 사용됩니다.
- 개인화: 사용자의 선호도나 설정을 저장하고, 사용자에게 맞춤형 서비스를 제공하기 위해 사용됩니다.
- 추적: 사용자의 행동을 추적하고 분석하기 위해 사용됩니다.
Session을 사용하는 이유
- 보안: 세션 데이터는 서버에 저장되기 때문에 클라이언트가 직접 접근하거나 조작할 수 없습니다.
- 용량: 세션은 서버에 저장되기 때문에 용량이 제한적이지 않습니다.
- 상태 관리: 세션을 통해 사용자의 로그인 상태, 장바구니 정보 등 상태를 관리합니다.
- 보안: 세션 데이터는 서버에 저장되기 때문에 클라이언트가 직접 접근하거나 조작할 수 없습니다.
LocalStorage와 SessionStorage
- LocalStorage: 브라우저를 닫아도 데이터가 남아있고, 사용자가 직접 지우지 않는 한 데이터가 계속 남아있는 저장소
- SessionStorage: 브라우저를 닫으면 데이터가 사라지는 저장소
LocalStorage
- 영구적: 브라우저를 닫아도 데이터가 남아있고, 사용자가 직접 지우지 않는 한 데이터가 계속 남아있는 저장소
- 저장 형식: key-value 형식으로 저장됩니다.
쿠키와 반대로 LocalStorage는 클라이언트에 저장되는 데이터를 서버로 전송하지 않습니다. 따라서 서버에 저장된 데이터를 가져오기 위해서는 JavaScript를 사용해야 합니다.
'[Project_하다] > [Project_공부]' 카테고리의 다른 글
[ML] 통계 기초 :: 추론 통계 (0) | 2024.09.09 |
---|---|
[ML] 통계 개념 기초 :: 기술통계 (0) | 2024.09.09 |
[RAG] RAG와 ELK (0) | 2024.08.26 |
[Python] Django Basics (0) | 2024.08.26 |
[AI번역] SIMD 명령어로 벡터 검색 가속화 (0) | 2024.08.22 |
[AI번역] 엘라스틱서치의 벡터 검색: 설계 이면의 논리 (0) | 2024.08.22 |
[ELK] Logstash (0) | 2024.08.16 |
Comments