Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 티스토리챌린지
- 연습
- 쿠키(cookie)
- docker
- SQL
- 아티클 스터디
- 오블완
- ERD
- git
- 장고
- Python
- web
- 코딩테스트
- nginx
- github
- NoSQL
- 자료구조
- 파이썬
- 도커
- 개발공부
- flask
- CS
- Til
- Wil
- Doker
- django
- JWT
- redis
- 세션(Session)
- viewsets
Archives
- Today
- Total
SteadyDrills
쿠키(Cookie) 본문
250102
쿠키(Cookie)란?
쿠키(Cookie)는 웹 사이트가 사용자의 브라우저 측에 저장하는 작은 텍스트 파일로, 웹 브라우저와 웹 서버 간의 상태를 유지하거나 사용자 정보를 저장하기 위해 사용된다.
쿠키의 구조
<키>-<값> 형태의 단순한 문자열로 구성
Set-Cookie: name=value;
Expires=Wed, 08 Jan 2024 14:00:00 GMT;
Domain=example.com; Path=/;
Secure; HttpOnly
- 쿠키의 구성요소
- 이름(name): "name"
- 값(value): "value"
- 만료 시간(Expires): "Wed, 08 Jan 2024 14:00:00 GMT"
- 도메인(Domain): "example.com"
- 경로(Path): "/"
- 보안 플래그(Secure): HTTPS 연결에서만 전송
- HttpOnly 플래그: JavaScript를 통한 접근 방지
쿠키의 특징
- 작은 크기
일반적으로 4KB 이하의 데이터 - 클라이언트 측 저장
브라우저에 저장되며 클라이언트가 서버로 요청을 보낼 경우 해당 쿠키도 함께 전송 - 유효기간
쿠키의 종류에 따라 유효기간을 설정가능 ex) 세션쿠키- 브라우저를 닫으면 삭제, 영구 쿠키 - 유효기간 동안 저장 - 도메인 및 경로 제한
특정 도메인과 경로에만 접근 가능하도록 설정할 수 있음.
쿠키의 종류
- 유효 기간에 따른 분류
- 세션 쿠키
브라우저를 닫으면 자동으로 삭제되는 임시 쿠키이다. 또한 RAM에 저장되고, 웹사이트 탐색 중에만 사용된다. - 영구적 쿠키
(지속 쿠키) 설정된 만료 날짜까지 컴퓨터에 저장되는 쿠키이며, 사용자 선호 설정이나 자동 로그인 기능에 사용된다
- 세션 쿠키
- 사용 목적에 따른 분류
- 필수 쿠키
웹사이트의 기본 기능을 지원하는 데 필요한 쿠키이다. - 기능 쿠키
사용자 설정과 선호도를 기억하는 쿠키이다. - 성능 쿠키
웹사이트의 성능 및 작동 방식 개선을 위해 정보를 수집하는 쿠키이다. - 마케팅 쿠키 (타겟팅 쿠키)
사용자의 웹 활동을 추적하고 개인화된 광고를 제공하기 위한 쿠키이다.
- 필수 쿠키
- 출처에 따른 분류
- 1차 쿠키(First-party Cookie)
사용자가 방문한 웹사이트에서 직접 설정한 쿠키로 해당 도메인에서만 접근이 가능하다. - 제3자 쿠키(Third-party Cookie)
사용자가 방문한 웹사이트가 아닌 제3자가 설정한 쿠키로, 주로 광고나 분석 서비스를 통해 생성된다.
- 1차 쿠키(First-party Cookie)
쿠키의 프로세스
쿠키의 한계와 문제점
- 데이터 크기 제한
복잡하고 용량이 큰 데이터를 저장하는 방식으로는 적합하지 않음. - 보안문제
쿠키는 네트워크 전송 과정에서 탈취될 수 있어 추가적인 보안 위험이 있다. 또한, 클라이언트 측에 저장되기 때문에 쉽게 변조 가능하며, 사용자의 정보가 해킹에도 취약하다. - 프라이버시 침해
사용자의 웹 검색 내용과 과정이 쿠키에 기록되어 광고회사 등에 의해 무단으로 수집될 수 있다.
쿠키의 대안 기술
- 로컬 스토리지(LocalStorage)
브라우저 세션이 종료되어도 데이터가 유지된다.
약 5MB의 데이터를 저장할 수 있어 쿠키(4KB)보다 훨씬 큰 용량을 제공하며, - 세션(Session)
클라이언트와 서버 간에 고유한 세션 ID를 통해 연결한다.
쿠키와 함께 서버 측 데이터를 저장하는 방식이다. 쿠키의 단점을 보완하기 위해 만들어졌으며, - JWT (JSON Web Token)
사용자 인증 및 정보 전달을 위한 토큰 기반 기술이다. 쿠키와 달리 CORS 문제를 쉽게 해결할 수 있으며, 서명되어 있어 위조가 어렵고, 필요한 정보만 포함할 수 있어 쿠키보다는 안전하다.
*CORS 문제
CORS(Cross-Origin Resource Sharing) 문제는 웹 브라우저의 보안 정책으로 인해 발생하는 이슈이다. 클라이언트가 다른 도메인의 리소스를 요청할 때 서버가 적절한 CORS 헤더를 제공하지 않으면 발생한다. ex) 백엔드와 프론트엔드의 연결
'CS' 카테고리의 다른 글
메모리에 저장 VS 하드에 저장 (0) | 2024.12.27 |
---|---|
캐싱(Caching) (0) | 2024.12.24 |
Docker란? (0) | 2024.12.03 |
RDBMS와 NoSQL의 차이 (2) | 2024.12.02 |
NoSQL (0) | 2024.11.29 |