IT/CS

[Web] 쿠키/세션/캐시

Terriermon 2021. 4. 13. 23:11

쿠키

- 사이트를 방문하고 이용할 때 사용자의 브라우저에 저장되는 내용들

- 클라이언트에서 저장하는 정보

쿠키 만료일

> 세션 쿠키: 웹 서버에서 발급 시 클라이언트 웹 브라우저 캐시에 저장, 메모리에 저장

- 동작 방식: 클라이언트가 서버에 처음으로 Request 요청
▶ 서버에서 session id가 없는 것을 확인하고 새로 발급하여 응답
▶ 클라이언트는 session id를 요청마다 Header Cookie에 넣어서 요청
▶ 서버에서 session id 확인하여 사용자 식별
▶ 클라이언트가 로그인 요청 시 서버는 session을 로그인한 사용자 정보로 갱신 후 새 session id 발급
▶ 로그인 사용자의 session id 쿠키를 요청과 함께 전달, 서버에서 로그인된 사용자로 식별가능
▶ 클라이언트 종료 시 session id 제거, 서버에서 세션 제거

> 지속 쿠키: 웹 서버 발급 시 클라이언트 하드 디스크에 텍스트 형태로 저장, 재사용 가능
- 동작 방식: 클라이언트 요청
▶ 서버에서 쿠키 생성
▶ HTTP 헤더에 쿠키를 포함 시켜 클라이언트에 응답 (Set-Cookie)
▶ 브라우저가 종료되어도 쿠키 만료 기간이 있다면 클라이언트에 보관

 

쿠키 사용 목적

1. 세션 관리: 서버가 알아야 할 정보 저장

2. 개인화: 사용자 맞춤 정보

3. 트래킹: 사용자의 패턴과 행동 기록

 

제약조건

- 클라이언트: 최대 300개

- 도메인: 최대 20개

 

 

세션

- 쿠키와 같은 역할, 서버에 저장하는 정보

- DB에 직접 접근하지 않아 데이터를 응답할 때, 속도가 빠르고 효율적

 

통신 방식

- 클라이언트가 서버 접속 시 고유 세션 ID 발급 ▶ 쿠키를 이용해서 세션 ID 저장 클라이언트가 페이지 접속시 쿠키에 저장된 세션ID를 서버에 전달 ▶ 서버: Response

취약점

- 세션 해킹: 쿠키값으로 세션 아이디 탈취 ▶ IP와 Session ID를 저장하여 검사 진행

 

 

캐시

- 데이터나 값을 미리 복사해 놓는 임시 저장소

- 정적 파일들을 로컬을 활용해 빠르게 로딩 가능

- 정적 파일 변경 시 클라이언트에 변경되지 않음 ▶ 캐시 제거 및 ETag로 변화 확인

'IT > CS' 카테고리의 다른 글

[자료구조] Hash  (1) 2021.04.16
[프레임워크] Spring Framework  (0) 2021.04.14
[Web] Rest란?  (0) 2021.04.13
[Java] Java란?  (0) 2021.04.12
[DB] MariaDB vs MySQL 차이점  (0) 2021.04.12