[Web] Cookie & Session & Token, Web Storage, Cache, CDN

unhyif·2023년 7월 7일
1

Web

목록 보기
2/4

데이터 저장과 관련된 개념들을 정리해 본다.


HTTP는 stateless하므로, stateful한 동작을 구현하기 위해 cookie/session/token을 활용할 수 있음

Cookie

브라우저에 저장되는 작은 기록 파일로, key:value 형식의 문자열

  • 서버가 응답 헤더에 설정하여 클라이언트에 전달함
  • 만료 시간을 명시할 수 있고, 만료 시간 이전엔 브라우저를 종료하더라도 유지됨
  • 자동으로 서버에 전송됨
  • ex: 쇼핑몰 장바구니

단점

  • 다른 브라우저 간 공유가 불가능함
  • 4KB 용량 제한 때문에 데이터를 충분히 담을 수 없을 수 있음
  • 모든 정보가 노출될 수 있음
  • 서버에 조작된 데이터가 넘어올 수 있음

Session

클라이언트와 서버 간의 연결 상태

  • cookie에 중요 정보 대신 세션 id를 저장하여 전달하는 방식을 통해 보안을 높일 수 있음
  • 보통 브라우저 종료 시 종료됨

장점

  • 중요 정보를 클라이언트 대신 서버에 저장함으로써 cookie보다 보안에 유리함
  • 서버가 사용자의 상태를 제어할 수 있음 (세션 종료 가능)

단점

  • 서버 메모리 관리 비용이 수반됨
  • 사용자 증가 시 서버 메모리를 차지하여 서버에 부하가 발생할 수 있음
  • request를 받을 때마다 정보 확인을 위해 서버 메모리를 조회해야 함
  • 서버 확장 시 복잡성이 발생할 수 있음

Token

session의 단점을 보완하기 위해 토큰을 사용함


Web Storage

클라이언트에 데이터를 저장하기 위해 HTML5부터 지원되는 저장소

  • origin(protocol + domain + port) 별로 생성되어 origin이 다르면 데이터에 접근할 수 없음
  • key:value 형태의 데이터를 저장함
  • cookie보다 큰 저장 용량을 가짐
  • cookie와 달리 서버에 자동으로 전송되지 않음
  • 서버가 조작할 수 없음
  • 다른 브라우저 간 공유가 불가능함

localStorage

  • origin 별로 생성됨
  • 만료 기한이 없음
  • 지속적으로 필요한 데이터를 보관하는 데에 활용됨

sessionStorage

  • origin + 브라우저 탭 별로 생성됨
  • 브라우저 탭 종료 시 데이터가 삭제됨
  • 잠시 필요한 데이터를 보관하는 데에 활용됨

Cache

자주 사용하는 데이터나 값을 저장해 두는 저장소

  • 데이터 전송량을 줄이고 서비스 이용 속도를 높일 수 있음

CDN

지리적으로 분산된 여러 개의 서버를 이용하여, 사용자의 요청을 가까운 서버에서 처리하는 기술

  • 데이터 전송 속도를 높일 수 있음
  • 본 서버는 캐시 서버에 데이터를 한 번씩만 전송하면 됨

Reference:
https://hongong.hanbit.co.kr/%EC%99%84%EB%B2%BD-%EC%A0%95%EB%A6%AC-%EC%BF%A0%ED%82%A4-%EC%84%B8%EC%85%98-%ED%86%A0%ED%81%B0-%EC%BA%90%EC%8B%9C-%EA%B7%B8%EB%A6%AC%EA%B3%A0-cdn/
https://ko.javascript.info/localstorage

0개의 댓글