본문 바로가기
Network

Cookie & Session

by orioncsy 2023. 5. 12.

Cookie & Session

개념

Cookie & Session

  • Http 프로토콜은 stateless 방식을 가진다.
    • 상태를 기록하지 않는 방식으로 다른 페이지로 넘어가면 정보를 다시 가져와야 한다.
  • 페이지를 넘어갈 때마다 인증정보가 필요하기 때문에 필요한 사용자 정보를 보관할 곳이 필요
  • 사용자의 정보를 저장하는 방식은 cookie와 session 두 가지 방식이다.

저장 위치

  • 쿠키 - 클라이언트의 웹 브라우저가 저정한 메모리나 하드디스크
  • 세션 - 서버의 메모리에 저장

만료 시점

  • 쿠키 - 저장할 때 expires 속성을 사용하여 만료시점을 정하고 무효화시킬 수 있다.
  • 세션 - 클라이언트가 로그아웃하거나 설정 시간 내 반응이 없으면 무효화된다.

리소스

  • 쿠키 - 클라이언트의 메모리에 저장되기 때문에 서버 자원을 사용하지 않는다.
  • 세션 - 서버에 저장되고 로딩할 때 서버 메모리로 로드되어 서버 자원을 소모한다.

용량 제한

  • 쿠키
    • 클라이언트가 모르는 상태에서 접속이 가능할 수 있기 때문에 제한을 둔다.
    • 하나의 클라언트에 300개, 한 도메인에 20개, 하나의 쿠키에 4KB로 제한
  • 세션
    • 클라이언트가 접속하면 서버에 생성되기 때문에 제한이 없다.

단점

  • 쿠키
    • 상대적으로 보안상의 위험이 존재한다.
    • 쿠키에 있는 데이터를 서버에 전송하는 과정에 탈취당할 가능성이 존재한다.
    • 보안상 상대적으로 취약하나 서버에 자원을 소모하지 않고 사용할 수 있고 속도가 빠르다.
  • 세션
    • 해당 세션에 사용자 정보를 보관하기 때문에 여러 서버를 로드밸런싱하게 되면 다른 서버에는 인증정보가 없는 세션 불일치 문제가 발생 가능
    • 사용자 정보를 보관하는 저장소를 따로 두면 해결 가능
    • 보안상 쿠키보다 안전하나 세션에 데이터가 많을 경우 서버 자원 소모가 크다.

Reference

https://gyoogle.dev/blog/web-knowledge/Cookie%20&%20Session.html

'Network' 카테고리의 다른 글

SSL Handshaking  (0) 2023.04.22
Load Balancing  (0) 2023.04.13
HTTP Status Code  (0) 2023.04.08
OSI 7 Layers  (0) 2023.02.18
CORS  (0) 2023.02.18