쿠키(Cookie)와 세션(Session)의 특징과 차이점
쿠키(Cookie)와 세션(Session)의 특징과 차이점
웹에서 사용되는 쿠키와 세션 기술
1. HTTP의 Stateless 한계를 극복하기 위한 기술
2. 로그인 후 세션이 자동으로 종료되므로 내 정보를 눌렀을 때 서버에서 식별이 어려움
3. 쿠키라는 기술이 먼저 사용된 후 보안이 고려된 세션이라는 기술이 주로 사용되고 있음
4. 쿠키와 세션 모두 클라이언트를 식별하기 위한 기술
쿠키
구성요소
1) 이름 : 쿠기값을 구별할 때 사용하는 이름
2) 값 : 쿠키의 이름과 관련된 값(id, pw, level 등)
3) 유효 시간 : 쿠키의 유지 시간
4) 도메인 : 쿠키를 전송할 도메인
5) 경로 : 쿠키를 전송할 요청 경로
쿠키 동작 방식
1) 클라이언트 페이지를 요청
2) 서버에서 쿠키값을 생성
3) 서버에서 응답을 둘 떄 HTTP 응답 헤더에 쿠키를 넣어서 클라이언트에 전달
4) 같은 요청을 할 경우 클라이언트가 HTTP 요청 헤더에 받았던 쿠키를 함께 서버에 보냄
5) 서버는 전달받은 쿠키값을 읽어서 해당하는 요청을 처리함
세션
세션이란?
1) 쿠키에 기반을 두고 있지만 사용자 정보 파일을 브라우저에 저장하는 쿠키와 달리 세션은 서버측에서 관리
세션 동작 방식
1) 클라이언트가 로그인 요청
2) 서버에서 세션 토큰을 생성
- 세션 토큰 : 아이디, 패스워드, 사용자 IP, 로그인 Date-Time 등으로 이루어진 고유의 값을 생성
- 세션 토큰은 서버에 저장되고 관리됨
- 클라이언트에게는 세션 토큰과 매핑되는 세션 아이디를 발급
- 클라이언트는 세션 아이디를 쿠키값으로 저장
- 다시 클라이언트가 세션 아이디가 포함된 요청을 서버로 보냄
- 서버에서는 세션 아이디에 해당하는 서버에 저장된 세션 토큰값을 읽고 그 사용자를 식별함
3) 서버에서 응답을 둘 떄 HTTP 응답 헤더에 쿠키를 넣어서 클라이언트에 전달
4) 같은 요청을 할 경우 클라이언트가 HTTP 요청 헤더에 받았던 쿠키를 함께 서버에 보냄
5) 서버는 전달받은 쿠키값을 읽어서 해당하는 요청을 처리함
burp suite을 이용해서 사이트나 페이지를 멈춰 놓고 테스트해 볼 수 있습니다.