쿠키와 세션 사용 이유
- 현재 우리가 인터넷에서 사용하고 있는 HTTP프로토콜은 연결 지향적인 성격을 버렸기 때문에 새로운 페이지를 요청할 때마다 새로운 접속이 이루어지며 이전 페이지와 현재 페이지 간의 관계가 지속되지 않는다
- HTTP 프로토콜을 이용하게 되는 웹사이트에서는 웹페이지에 특정 방문자가 머무르고 있는 동안에 방문자의 상태를 지속시키기 위해 쿠키와 세션을 이용한다
쿠키(cookie)
- 웹사이트에 접속할때 생성되는 정보를 담은 임시파일
- 서버가 사용자의 웹 브라우저에 저장하는 데이터
- key와 value로 구성 , String형태
- 쿠키는 서버를 대신해서 생성되는 정보들을 웹브라우저(사용자가 사용하고 있는 컴퓨터)에 저장하고 사용자가 요청을 할때 그 정보를 함께 보내서 서버가 사용자를 식별할 수 있게 한다
#상태 유지 및 관리
#사용자 인증 수단
쿠키의 사용목적
세션관리(Session Management)
로그인, 접속시간, 장바구니 등 서버가 알아야 할 정보들을 저장
개인화(Personalization)
사용자마다 다르게 개인 페이지를 보여준다
트랙킹(Tracking)
사용자의 행동과 패턴을 분석하고 기록한다
쿠키의 종류
- 지속쿠키(Persistent Cookie)
- 세션쿠키(Session Cookie)
지속쿠키(Persistent Cookie)
- 만료 일시가 없음
- 항상 key와 value가 유지
- 파일로 저장되어 항상 쿠키 유지
세션쿠키(Session Cookie)
- 만료일시를 저장하고 만료되면 값이 사라짐
- 브라우저 메모리에 저장되어 브라우저 종료시 쿠키 소멸
지속쿠키의 단점과 해결
세션(Session)
- 서버에 웹 컨테이너의 상태를 유지하기 위한 정보를 저장
- 브라우저를 닫거나, 서버에서 세션을 삭제했을 때 삭제되므로, 쿠키보다 보안이 좋다
- 저장데이터에 제한이 없다
- 각 클라이언트의 고유세션ID를 부여한다
- 세션ID로 클라이언트를 구분하여 각 클라이언트 요구에 맞는 서비스를 제공한다
쿠키와 세션의 차이
| 쿠키(cookie) | 세션(session) |
---|
저장위치 | 클라이언트 | 서버 |
라이프사이클 | 지속쿠키: 항상 유지 /세션쿠키: 만료일시 혹은 브라우저 종료시 | 서버 만료 또는 브라우저 종료 시 세션아이디 만료 소멸 |
보안 | 탈취, 변조의 위협 | 비교적 안전 |
속도 | 빠름 | 비교적 느림 ( 세션 아이디를 이용하여 데이터를 참조하기 때문) |
세션보다 쿠키를 선호하는 이유
세션
은 세션 아이디를 이용해 데이터를 참조하기 때문에 사용자가 많을 경우 소모되는 자원이 많아 서버에 부담이 된다
- 웹서비스와 인프라의 구성에 맞게 세션과 쿠키를 적절하게 병행 사용하여 서버자원의 낭비를 줄이고 웹사이트의 속도를 높일 수 있다
참고 자료
강의 :
Udemy - 반드시 알고 넘어가야 할 웹 기술 기초편 (크리핵티브 정보보안 교육)