-
Notifications
You must be signed in to change notification settings - Fork 27
Cookie & Session
kimahhh edited this page Jul 27, 2023
·
1 revision
참조1: https://developer.mozilla.org/ko/docs/Web/HTTP/Cookies
참조2: https://code-lab1.tistory.com/298
- Connectionless(비연결성)
- Stateless(무상태)
따라서 사용자를 식별할 수 있는 무언가가 필요!
- 클라이언트 측(ex. 웹 브라우저)에 저장되는 작은 텍스트 파일
- HttpResponse
Set-Cookie
헤더에 의해 설정 - 이후 HttpRequest
Cookie
헤더에 포함되어 사용자가 사이트를 방문할 때마다 해당 사이트의 서버로 전송
- 세션 관리
- 개인화
- 트래킹
현재 세션이 끝날 때 삭제
Expires
속성에 명시된 날짜에 삭제
Max-Age
속성에 명시된 기간 이후에 삭제
쿠키가 전송되게 될 호스트들을 명시
Cookie 헤더를 전송하기 위한 URL 경로
- 서버 측에서 관리되는 상태 정보
- 세션 사용 단계
- 사용자가 사이트에 로그인하면 서버는 고유한 세션 ID 생성
- 이 ID는 쿠키를 통해 클라이언트에 전달
- 클라이언트는 해당 쿠키를 쿠키 저장소에 저장
- 이후 클라이언트의 요청마다 쿠키 안에 세션 ID를 전송
- 서버는 이를 통해 사용자를 식별하고 사용자에 대한 정보를 서버 메모리에 저장하거나 검색
- 서버 측에서 관리 → 쿠키보다 보안성 ⬆️, 저장 가능한 데이터 크기 제한 X
- 서버의 자원 사용 → 자원 사용량 고려
쿠키 | 세션 | |
---|---|---|
저장 위치 | 클라이언트 측 | 서버 측 |
자원 사용 | 클라이언트 자원 사용 | 서버 자원 사용 (많은 사용자를 처리할 때 서버에 부하) |
보안 | 취약 (클라이언트에 직접 저장되기 때문) | 쿠키보다 우수 |
데이터 크기 제한 | O | X (서버의 자원 사용) |
유지 시간 | 만료 시간 동안 파일로 저장 → 브라우저를 종료해도 정보가 남아있음 | 브라우저가 종료되면 만료시간에 상관없이 삭제 |