세션,쿠키, 토큰

수영·2023년 1월 30일
0

2023 겨울방학

목록 보기
6/7

쿠키(cookie)

쿠키는 웹사이트에 접속할 때 서버에 의해 사용자의 컴퓨터에 저장되는 정보이다.

웹사이트는 이렇게 저장된 사용자의 정보를 client 측의 컴퓨터에 남겨 필요할때마다 재사용 한다.

보통 로그인 정보 자동입력,"오늘 이 창을 다시 보지 않기" 체크시 팝업창 미표시, 장바구니 정보를 저장하는 용도로 많이 활용된다.

쿠키의 특징

이름, 값, 만료일,경로 정보로 구성되어 있으며 클라이언트(개인pc)에 총 300개의 쿠키를 저장할 수 있다.

하나의 도메인은 20개의 쿠키를 가질 수 있으며 하나의 쿠키는 4KB(4096byte)까지 저장할 수있다.


그림 출처: https://interconnection.tistory.com/74

쿠키의 동작 순서

  1. 클라이언트가 페이지를 요청(내가 사이트 접속)

  2. 웹 서버는 쿠키생성

  3. 생성한 쿠키에 정보를 담아서 HTTP 화면을 돌려줄 때 같이 클라이언트에게 돌려준다.

  4. 받은 쿠키는 클라이언트가 가지고 있다가 (개인 pc에 저장함) 다시 서버에 요청할 때 요청과 함께 쿠키를 전송한다.

  5. 동일 사이트 재방문시 클라이언트의 pc에 해당하는 쿠키가 있는 경우 요청 페이지와 함께 쿠키를 전송한다.

세션(session)

웹사이트의 여러페이지에 걸펴 사용되는 사용자 정보를 저장하는 방법을 의미한다.

사용자가 브러우저를 닫아 서버와의 연결을 끝내는 시점까지를 세션이라 한다.

사용되는 예시는 로그인후 화면을 이동해도 로그아웃이 되지 않고 로그인이 유지되는 것이다.

여기서 먼저 설명한 쿠키와 세션이 무엇이 다른지 의문이 들 수 있다.

먼저 설명한 쿠키는 클라이언트측(개인pc)의 컴퓨터에 모든 데이터를 저장하고 세션은 서비스가 돌아가는 서버(웹서버)측에서 데이터를 저장하며 세션의 키값만 클라이언트 측에 남겨두고 브라우저에서 필요할때마다 이 키값으로 서버에 저장된 데이터를 불러와 사용하는것이다.

이렇게 세션은 보안에 약한 쿠키를 보완해준다.

여기서 세션이 쿠키보다 더 좋으면 세션만 쓰면 될꺼 아닌가 할테지만 세션이 쿠키보다 보안 측면에서는 좋지만 세션은 서버 자원을 사용하다보니 사용자가 많은경우 소모되는 자원이 크며 웹사이트의 속도를 늦출 수 있어 쿠키와 세션을 적절히 사용해야 한다.

세션 특징

웹서버에 웹 컨테이너의 상태를 유지하기위한 정보를 저장한다.

브라우저를 닫거나 서버에서 세션을 삭제햇을때만 삭세가 되므로 쿠키보다 보안이좋으며 저장 데이터에 제한이 없다.

각 클라이언트 고유 sessionID를 부여해 이것으로 클라이언트를 구분한다.

세션의 동작 순서

  1. 클라이언트가 페이지 요청(내가 사이트 접속)

  2. 서버는 접근한 클라이언트의 Request-Header 필드이 Cookie를 확인해 클라이언트가 해당 sessionID를 보냈는지 확인한다.

  3. sessionID가 없다면 서버는 이를 생성해 클라이언트에게 돌려준다.

  4. 서버에서 클라이언트로 돌려준 sessionID를 쿠키를 사용해 서버에 저장한다.

  5. 클라이언트는 재접속시 이 쿠키를 이용해 sessionID값을 서버에 전달한다.


    그림 출처:https://tansfil.tistory.com/58

0개의 댓글