쿠키와 세션 차이(Cookie & Session)

Lys·2023년 10월 17일
0

네트워크

목록 보기
16/19

쿠키(Cookie)란?

  • 클라이언트(로컬)에 저장되는 키와 값이 들어있는 작은 데이터 파일이다.
  • 사용자 인증이 유효한 시간을 명시할 수 있으며, 유효 시간이 정해지면 브라우저가 종료되어도 인증이 유지된다.
  • 클라이언트의 상태 정보를 로컬에 저장했다가 참조한다.
  • 하나의 도메인 당 20개의 쿠키를 가질 수 있다.
  • 하나의 쿠키는 4KB(=4096byte)까지 저장 가능하다.

쿠키의 구성요소

  • 이름 : 각각의 쿠키를 구별하는 데 사용(Name)
  • 값 : 쿠키의 이름과 관련 된 값(Value)
  • 만료일: 쿠키가 언제 삭제되는지 결정(Expires)
  • 도메인: 쿠키가 사용하는 도메인 지정(Domain)
  • 경로 : 쿠키가 반환할 경로를 결정(path)
  • 보안 연결: 보안 연결 설정(Secure)
  • HttpOnly: HTTP외에 다른 통신 사용 가능 설정

쿠키의 동작 순서

  1. 사용자가 웹 사이트에 접근한다.
  2. 웹 서버는 사용자의 요청을 받고 사용자의 정보를 담은 쿠키를 생성한다.
  3. 생성한 쿠키를 HTTP 헤더에 쿠키를 포함하여 응답을 보낸다.
  4. 넘겨받은 쿠키는 사용자가 가지고 있다가(로컬 pc에 저장) 다시 서버에 요청할 때 요청과 함께 쿠키를 전송한다.
  5. 동일 사이트 재방문시 사용자의 pc에 해당 쿠키가 있는 경우엔 요청 페이지와 함께 쿠키를 전송한다.

    활용 예시

    • 쇼핑몰 장바구니 기능
    • 방문했던 사이트 재방문시 아이디,비밀번호 자동 입력, 자동 로그인
    • 팝업창을 통해 "오늘 이 창을 다시 보지 않기" 등

세션(Session)이란?

  • 쿠키를 기반으로 하고 있지만 사용자 정보 파일은 브라우저에서 관리하지 않고 세션은 서버 측에서 관리한다.
  • 서버에서는 사용자를 구분하기 위해 세션 ID를 부여하며 웹 브라우저가 서버에 접속해서 브라우저를 종료할 때 까지 인증상태를 유지한다.
  • 접속 시간에 제한을 두어 일정 시간 응답이 없다면 정보가 유지되지 않도록 설정이 가능하다.
  • 저장 데이터에 제한이 없다.(서버 용량이 허용하는 한에서)
  • 브라우저를 닫거나 서버에서 세션을 삭제했을 때만 삭제가 된다.

세션의 동작 방식

  1. 사용자가 서버에 접속 시 session-id를 발급 받는다.
  2. 사용자는 session-id에 대해 쿠키를 사용해서 저장하고 가지고 있다.
  3. 사용자는 서버에 요청 시 이 쿠키의 session-id를 같이 서버에 전달한다.
  4. 서버는 session-id를 전달 받아서 session-id에 있는 사용자 정보를 가지고 와 사용한다.
  5. 사용자의 정보를 가지고 서버 요청을 처리하여 클라이언트에게 응답한다.

    활용 예시

    • 로그인 유지
      • 화면을 이동해도 로그인이 풀리지 않고 로그아웃 전까지 유지

쿠키와 세션의 차이

쿠키세션
데이터 저장 위치사용자 pc의 메모리 or 파일웹서버
저장형식textobject
만료 기간쿠키 저장 시 설정(브라우저가 종료 되어도, 만료 시점이 지나지 않으면 자동 삭제 되지 않는다.)브라우저 종료시 삭제(기간 지정 가능)
보안세션보다 위험함(사용자의 로컬에 저장되고, 파일로 저장되는 경우 탈취,변조 될 위험이 있다.쿠키보다 좋다.(쿠키를 이용해서 session-id만 저장하고 그것으로 구분하여 서버에서 처리하기 때문에 비교적 보안성이 높다..)
속도세션보다 빠르다.쿠키보다 느림
용량총 300개서버가 허용하는 한 용량 제한 없다.

🙇‍ 참고 사이트 🙇‍

https://code-lab1.tistory.com/298
https://velog.io/@sorzzzzy/Code.presso-%EC%BF%A0%ED%82%A4%EC%99%80-%EC%84%B8%EC%85%98%EA%B0%9C%EB%85%90%EA%B3%BC-%ED%99%9C%EC%9A%A9-%EC%98%88%EC%8B%9C%EB%A5%BC-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90
https://interconnection.tistory.com/74
https://btcd.tistory.com/40

0개의 댓글

관련 채용 정보