Session 과 Cookie 정리

Sunset·2022년 8월 4일
0

먼저 세션과 쿠키를 사용하는 이유는 아래와 같은 HTTP의 특성 때문입니다.

- StateLess(무상태)

상태를 저장하지 않는, 서버가 클라이언트의 이전 상태를 보존하지 않는다는 의미입니다.

- Connectionless(비연결성)

클라이언트가 서버에 요청을 하지 않고 응답을 받으면 바로 TCP/IP 연결을 끊어 연결을 유지하지 않는 것을 의미 합니다.

HTTP 쿠키(웹 쿠키, 브라우저 쿠키)는 서버가 사용의 웹 브라우저에 전송하는 작은 데이터 조각입니다.
브라우저(사용자PC)그 데이터 조각들을 저장해 두었다가, 동일한 서버에 재 요청시 저장된 데이터를 함께 전송합니다.
쿠키는 두 요청이 동일한 브라우저에서 들어왔는지 아닌지 는 판단할 때 주로 사용됩니다.
이를 이용하여 사용자의 로그인 상태를 유지할 수 있습니다.
상태가 없는(Stateless) HTTP 프로토콜에서 상태 정보를 기억할수 있습니다.

- 쿠키의 기능

세션관리
서버에 저장해야 할 로그인, 쇼핑몰의 장바구니 담기, 팝업창의 '오늘 이창을 다시 보지 않음' 체크 등
개인화
사용자 선호, 테마 등의 세팅
트래킹
사용자 행동을 기록하고 분석하는 용도

- 쿠키의 특징은?

이름, 값, 만료일, 경로 정보로 구성,
클라이언트에 총 300개의 쿠키를 저장,
도메인 별로 20개 저장,
하나의 쿠키는 4KB까지



Session

세션은 쿠키를 기반하고 있지만, 브라우저에 저장하는 쿠키와 달리 세션은 서버측에 저장합니다.
잃정 시간동안 같은 사용자(브라우저)로부터 들어오는 일련읜 요구를 하나의 상태로 보고, 그 상태를 일정하게 유지 시키는 기술입니다.
브라우저를 종료, 닫으면 세션은 삭제 됩니다.

- 세션의 특징은?

각 클라이언트에게 고유한 세션ID를 부여,
세션ID로 클라이언트를 구분, 요구에 맞는 서비스를 제공,
브라우저는 닫거나, 서버에서 세션이 삭제 했을때만 삭제가 되므로 쿠키보다는 보안이 띄어남,
쿠키와 달리 저장하는데 제한이 없다,
사용자가 많아 질수록 서버 메모리를 많이 차지 하게되어 속도저하.

쿠키와 세션의 차이

CookieSession
저장 위치클라이언트(=접속자 PC)웹서버
저장 형식TextObject
만료 시점쿠키 저장시 설정(브라우저가 종료되어,
만료시점이 지나지 않으면 자동 삭제되지 않음
브라우저 종료시 삭제
(기간 지정 가능)
사용하는 자원(리소스)클라리언트 소스웹 서버 소스
용량 제한총 300개, 하나의 도메인당 20개,
하나의 쿠키당 4KB
서버가 허용하는 한 용량제한 없음
속도세션보다 빠름쿠키보다 느림
보안세션보다 안좋음쿠키보다 좋음

0개의 댓글