쿠키와 세션의 차이

2021. 3. 10. 17:43개발이야기

728x90
반응형

쿠키와 세션의 차이

HTTP 프로토콜의 특징

🍭비연결성

HTTP는 먼저 클라이언트가 request를 서버에 보내면 서버는 클라이언트의 요청에 맞는 response를 보내고 접속을 끊는 단발성의 특징이 있음

🍭비상태성

연결을 끊는 순간 클라이언트와 서버의 통신은 끝나며 상태 정보는 유지하지 않는 특성

 

장점: 비연결지향 이라는 특성으로 계속해서 연결을 유지하지 않기 때문에 자원을 절약할 수 있다

단점: 통신할 때마다 새로 연결을 해주어야 하기 때문에 클라이언트는 그때마다 인증을 해주어야 한다

 

**쿠키와 세션은 이러한 두가지 특성을 보완하기 위해 사용되기 시작했다.

🍪: 내가 가지고 있으면서 서버를 이용할 때마다 보여주는 것

 

쿠키

📌쿠키(Cookie)의 개념

  • 웹 사이트에 접속할 때 생성되는 정보를 담은 임시 파일
  • 서버가 사용자의 웹 브라우저에 저장하는 데이터
  • 데이터 형태: key와 value로 구성, String 형태로 되어 있음

 

📌쿠키가 사용되는 예시

  • ID 저장, 로그인 상태 유지
  • 일주일간 다시 보지 않기
  • 쇼핑몰 장바구니 기능 등

 

📌쿠키의 단점

  • 보안이 취약
    • 방문했던 웹 사이트에 대한 정보 및 개인정보가 기록되기 때문에 사생활을 침해할 소지가 있음
    • 서버가 가지고 있는 것이 아니라 사용자에게 저장되기 때문에 임의로 조작될 수 있고 가로채기도 쉬움

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

 

세션

🐾세션의 개념

  • 세션은 쿠키를 기반하고 있지만, 사용자 정보 파일을 브라우저에 저장하는 쿠키와 달리 세션은 서버 측에서 관리
  • 서버에서는 클라이언트를 구분하기 위해 세션 ID를 부여하며 웹 브라우저가 서버에 접속해서 브라우저를 종료할 때까지 인증상태를 유지한다.
  • 클라이언트가 Request를 보내면, 해당 서버의 엔진이 클라이언트에게 유일한 ID를 부여하는 데 이것이 세션ID다.

 

🐾세션의 장점

  • 보안 Good!
    • 사용자에 대한 정보를 서버에 두기 때문에 쿠키보다 보안에 좋다.

 

🐾세션의 단점

  • 메모리 많이 차지, 성능저하, 속도
    • 사용자가 많아질수록 서버 메모리를 많이 차지하게 된다
    • 동접자 수가 많은 웹 사이트인 경우 서버에 과부하를 주게 되므로 성능 저하의 요인

 

💡간단요약

 

쿠키(Cookie)

세션(Session)

저장 위치

클라이언트(=접속자 PC)

웹 서버

저장 형식

text

Object

만료 시점

쿠키 저장시 설정

(브라우저가 종료되도, 만료시점이 지나지 않으면 자동삭제되지 않음)

브라우저 종료시 삭제

(기간 지정 가능)

사용하는 자원(리소스)

클라이언트 리소스

웹 서버 리소스

용량 제한

총 300개

하나의 도메인 당 20개

하나의 쿠키 당 4KB(=4096byte)

서버가 허용하는 한 용량제한 없음.

속도

세션보다 빠름

쿠키보다 느림

보안

세션보다 안좋음

쿠키보다 좋음

 

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형