쿠키와 세션
쿠키
: 쿠키는 웹 사이트에 접속할 때 생성되는 정보를 담은 임시 파일
-
저장장소 : 클라이언트측(브라우저) : 쿠키는 서버가 사용자의 웹 브라우저에 저장하는 데이터를 말합니다.
- 브라우저마다 저장되는 쿠키는 다릅니다. (크롬으로 남긴 쿠키는 인터넷 익스플로어에서 사용할 수 없습니다.) → 서버에서는 브라우저가 다르면 다른 사용자로 인식
- 쿠키는 내 웹브라우저에 저장된 것이기 때문에 로그아웃 유무와 관계없이 삭제하지 않으면 유지됨
-
데이터 형태 : Key 와 Value로 구성되고 String 형태
-
사용목적
- 세션 관리(Session Management) 로그인, 사용자 닉네임, 접속 시간, 장바구니 등의 서버가 알아야할 정보들을 저장합니다.
- 개인화(Personalization) 사용자마다 다르게 그 사람에 적절한 페이지를 보여줄 수 있습니다.
- 트래킹(Tracking) 사용자의 행동과 패턴을 분석하고 기록합니다.
-
사용 예시
쿠키가 있기 때문에 여러 페이지를 이동할 때마다 로그인을 하지 않고 사용자 정보를 유지할 수 있는 것입니다.
쿠키가 없다면 다음 페이지로 정보를 파라미터로 넘겨줘야 합니다.
- ID 저장, 로그인 상태 유지
- 일주일간 다시 보지 않기.
- 최근 검색한 상품들을 광고에서 추천
- 쇼핑몰 장바구니 기능
-
단점
- 사생활 침해 소지 : 방문했던 웹 사이트에 대한 정보 및 개인정보가 기록
→ 웹 브라우저 자체 쿠키 거부기능으로 해소
- 보안 취약 : 서버가 가지고 있는 것이 아니라 사용자에게 저장되기 때문에, 임의로 고치거나 지울 수 있고, 가로채기도 쉬움
→ 쿠키에는 민감하거나 중요한 정보를 담는 것은 위험합니다.
-
용량 제한 : 클라이언트도 모르게 접속되는 사이트에 의하여 설정될 수 있기 때문에 쿠키로 인해 문제가 발생하는 것을 막고자 한 도메인당 20개 /하나의 쿠키 당 4KB로 제한
-
만료시점 : 브라우저 종료시
- 따로 expires 속성을 정의해 무효화 시키면 삭제될 날짜를 지정 가능
-
요청속도 : 쿠키가 더 빠름 (세션은 서버를 사용하기 때문)
세션
: 세션 아이디는 웹 브라우저 당 1개씩 생성되어 웹 컨테이너에 저장되며 브라우저 종료시 소멸됩니다.
- 로그인한 사용자에 대해서만 세션을 생성하는 것이 아님 = 로그아웃하면 새로운 사용자로 인식해서 새로운 세션이 생성
- 저장장소 : 쿠키를 기반하고 있지만, 사용자 정보 파일을 브라우저에 저장하는 쿠키와 달리 세션은 서버 측에서 관리 → 동접자 수가 많은 웹 사이트인 경우 서버에 과부하를 주게 되므로 성능 저하의 요인