본문 바로가기
CS/Network

[네트워크] 쿠키(Cookie)와 세션(Session)

by 테리는당근을좋아해 2020. 6. 27.

HTTP 프로토콜

1) 특징

(1) 비연결성(Connectionless)

(2) 무상태(Stateless)

 

2) 상태 유지의 필요성

- HTTP 프로토콜의 특징으로 인해 Request 간 의존관계가 없음

- 연결을 유지하지 않기 때문에 리소스 낭비가 줄어드나, 통신할 때마다 새로 연결하기 때문에 클라이언트는 매 요청마다 인증이 필요

- 이전 요청과 현재 요청이 같은 사용자로부터의 요청인지 알기 위해 상태를 유지해야함

 

 

쿠키(Cookie)

- 클라이언트에 대한 상태 정보를 key와 value의 형태로 로컬에 저장해 참조하는 방식

- 클라이언트의 상태 정보를 브라우저에 저장해 참조

 

1) 동작 방식

(1) 웹 브라우저가 서버에 요청

(2) 상태를 유지하고 싶은 값을 쿠키(Cookie)로 생성

(3) 서버가 응답할 때 HTTP 헤더(Set-cookie)에 쿠키 정보를 포함해 전송

(4) 전달받은 쿠키는 웹 브라우저에서 관리하고 있다가, 다음 요청 시 쿠키를 HTTP 헤더에 넣어서 전송

(5) 서버에서 쿠키 정보를 읽어 이전 상태 정보와 일치하는 지 확인 후 응답

 

2) 사용 예

(1) 아이디와 비밀번호 저장

(2) 쇼핑몰 장바구니

 

 

세션(Session)

- 일정시간 동안 같은 브라우저로부터 들어오는 요청을 하나의 상태로 보고 그 상태를 유지하는 기술

 

1) 동작 방식

(1) 웹 브라우저가 성버에 요청

(2) 서버가 해당 웹 브라우저(클라이언트)에 세션 ID를 부여

(3) 서버가 응답할 때 HTTP 헤더(Set-cookie)에 세션 ID를 포함해 전송

(4) 웹 브라우저는 이후 웹 브라우저를 닫기까지 다음 요청 때 부여된 세션 ID가 담겨있는 쿠키를 HTTP 헤더에 담아 전송

(5) 서버는 세션 ID를 확인 후 해당 세션에 관련된 정보를 확인하고 응답

 

2) 사용 예

(1) 로그인

 

 

쿠키와 세션의 차이

- 세션도 쿠키를 사용해 값을 주고받으며 클라이언트의 상태 정보 유지

- 즉, 세션의 상태 정보 유지의 수단은 쿠키

 

  쿠키 세션
저장위치 클라이언트 서버
보안 취약 비교적 안전
라이프 사이클 만료시간 브라우저의 종료
속도 빠름 느림

 

댓글