쿠키(Cookie)와 세션(Session)의 특징과 차이 간략 정리

okstring·2020년 9월 3일
0

쿠키와 세션은 HTTP프로토콜의 단점을 커버하기 위해 존재

HTTP프로토콜의 단점은

  • Connectionless : 클라이언트가 request를 하고 서버에서 response를 하면 접속을 끊는 특성
  • Stateless : 접속을 끊는 즉시 상태정보를 유지하지 않는 특성

쿠키(Cookie)

  • 쿠키 저장정보는 이름, 값, 만료날짜(쿠키 저장기간), 경로 정보
  • 쿠키는 일정 시간동안 데이터를 저장할 수 있어 로그인 상태를 유지
  • 쿠키는 클라이언트의 상태 정보를 본인 하드 디스크에 저장하였다가 필요할 때 참조, 재사용
  • 클라이언트에 총 300개까지 쿠키를 저장
  • 하나의 도메인 당 20개의 값만 가질 수 있음.
    (20개를 초과하면 가장 적게 참조된 쿠키가 지워짐)
  • 하나의 쿠키 값은 4MB까지 저장이 가능
  • 쿠키는 문자열 데이터 유형만 저장 가능

쿠키의 원리

  1. 클라이언트가 브라우저로 웹페이지 접속

  2. 클라이언트가 요청한 웹페이지를 전송받으면서 쿠키도 하드에 저장

  3. 클라이언트 재 방문 시 웹페이지 요청과 함께 쿠키값도 전송

  4. 지속적으로 로그인 정보를 가지고 있는 것 처럼 사용


세션(Session)

  • 세션은 클라이언트와 웹서버 간 네트워크 연결이 지속 유지되고 있는 상태를 말함
    (브라우저를 열고 다시 종료할 때의 시점)

  • HTTP 프로토콜은 비접속형 프로토콜이므로, 매 접속시마다 새로운 네트워크 연결이 이루어지는데, 세션이 연결유지를 가능하게 해줍니다

  • 클라이언트가 웹서버에 Request를 보내면, 해당 서버의 엔진이 클라이언트에게 유일한 ID를 부여하는데 이 ID를 세션이라고 부른다

  • 세션 ID는 클라이언트가 재 접속 했을 때 클라이언트를 유일하게 구분하는 수단이 됩니다.

  • 사용했던 보았던 정보들을 서버에 저장하기 때문에 보안 면에서 쿠키보다 우수합니다.

  • 세션은 바이너리 및 암호화 형식으로 저장되어 보안이 유지됩니다.

세션의 단점

  • 서버에 저장되는 세션때문에 서버에 처리를 요구하는 부하와 저장 공간을 필요로 한다.

세션과 쿠키의 차이

SessionCookie
서버에 저장클라이언트에 저장
서버의 자원 사용 O서버의 자원 사용 X
쿠키에 종속함세션에 종속 안함
원하는 데이터만큼 저장 가능최대 크기 4KB
비활성화 불가능비활성화 가능

reference

https://blog.naver.com/PostView.nhn?blogId=suin2_91&logNo=221369666676

https://medium.com/@rawat.hemant27/what-is-the-difference-between-cookie-cache-and-session-d6f468a9b4b3

https://www.guru99.com/difference-between-cookie-session.html

profile
step by step

0개의 댓글