네트워크:쿠키 VS세션

Spacious_kitchen·2021년 10월 13일
0

HTTP(Hypertext Transfer Protocol)는 비 연결성(Connectionless)과 비 상태성(Stateless)의 특징을 가지고 있다.

이에 따라 사용자를 식별하려는 보완 사항으로 쿠키와 세션을 사용한다.

쿠키(Cookie)

웹 사이트에 접속할 때 생성되는 정보를 담은 임시 파일이다.
쿠키의 데이터 형태는 Key와 Value로 구성되고 String 형태로 이루어져 있다.
사용자를 식별하는 용도로 사용한다.

쿠키는 서버를 대신해서 이러한 정보들을 웹 브라우저에 저장(정확히는, 웹 브라우저를 이용하고 있는 컴퓨터에 저장)하고

사용자가 요청할 때 그 정보를 함께 보내서 서버가 사용자를 식별할 수 있게 한다.

쿠키의 사용 목적

1.세션 관리(Session Management) 로그인, 사용자 닉네임, 접속 시간, 장바구니 등의 서버가 알아야 할 정보들을 저장한다.

2.개인화(Personalization) 사용자마다 다르게 그 사람에 적절한 페이지를 보여줄 수 있다.

3.트래킹(Tracking) 사용자의 행동과 패턴을 분석하고 기록한다.

쿠키 사용의 예시

  • ID 저장, 로그인 상태 유지
  • 일주일간 다시 보지 않기.
  • 최근 검색한 상품들을 광고에서 추천
  • 쇼핑몰 장바구니 기능

쿠키의 단점

  1. 방문했던 웹 사이트에 대한 정보 및 개인정보가 기록되기 때문에 사생활을 침해할 소지가 있으며, 이를 해소하기 위해서 웹 브라우저 자체에 쿠키 거부 기능이 있다.

    이러한 쿠키에 대한 거부가 웹 브라우저에 설정되어 있으면, 쿠키 본래의 목적인 웹 브라우저와의 연결을 지속하는 기능을 수행할 수 없는 경우가 발생한다.

  2. 서버가 가지고 있는 것이 아니라 사용자에게 저장되기 때문에, 임의로 고치거나 지울 수 있고 가로채기도 쉬워 보안이 취약하다.

    따라서, 쿠키에는 민감하거나 중요한 정보를 담는 것은 위험하다.

세션

웹 브라우저당 1개씩 생성되어 웹 컨테이너에 저장되며 브라우저 종료 시 소멸한다.
로그인과 로그아웃, 또는 설정 시간 동안 반응이 없을 시에 무효화 된다.

  1. 서버에서는 사용자로부터 요청이 있을 때 사용자를 구분하기 위한 임시쿠키 하나를 보낸다.
  2. 저장된 쿠키는 웹 브라우저의 쿠키저장소에 저장된다.
  3. 이후 같은 사이트의 서버를 방문할 때마다, 저장된 쿠키를 요청할 header에 담아 함께 다시 서버로 전송한다.
  4. 서버는 전송받은 쿠키와 서버에 저장된 사용자 정보를 비교하여 사용자를 확인한다.

정보를 세션에 담아두면 요청이 있을 때마다 DB에 접근할 필요가 없어서 효율적이다.


더보기

출처

https://devuna.tistory.com/23

profile
이왕 사는거 넓은 주방을 가지는 성공하는 삶을 살고 싶습니다.

0개의 댓글