TIL_210119

oh_ji_0·2021년 1월 19일
0

TIL

목록 보기
59/61

TODAY I LEARNED

  • 로컬스토리지, 세션, 쿠키
  • 쿠키
    HTTP 쿠키(웹 쿠키, 브라우저 쿠키)는 서버가 사용자의 웹 브라우저에 전송하는 작은 데이터 조각.서버와 클라이언트가 대화하기 위한 수단 (서버와 클라이언트 간의 지속적인 데이터 교환을 위해 만들어짐).
    사용자가 사이트 접속시 서버가 사용자의 컴퓨너테 저장하는 키와 값이 들어있는 작은 파일을 의미한다.
    서버에서 응답 헤더에 Set-Cookie 속성을 이용하여 제공.
    쿠키 안에서도 세션 쿠키와 지속 쿠키로 나뉜다. (만료날짜와 시간을 지정하지 않으면 세션 쿠키, 브라우저가 종료되면 사라진다. 그러나, 크롬과 같은 브라우저 등에서는 브라우저를 종료해도 세션 쿠키가 남아있을 수 있다.)
    지속 쿠키는 파일로 저장되어, 만료일까지 지속된다. 보안에 취약하다.

  • 세션
    서버에 클라이언트 상태 정보를 저장하는 기술, 논리적 연결.
    서버와 클라이언트가 연결되어있는 상태, 세션 활성화가 시작되면 해당 클라이언트에 대해 유일한 아이디를 부여한다.(세션 아이디)
    서버에 저장해야 할 로그인, 장바구니, 게임 스코어 등의 정보를 관리.
    쿠키를 기반으로하나 브라우저에 저장하는 쿠키와 달리 세션은 서버측에서 관리한다.
    세션 스토리지에 이 세션 id를 쿠키를 통해 기억한다.
    쿠키에 세션 id를 담아 전송하면 서버는 세션 아이디와 세션 스토리지에 저장된 세션 아이디를 대조하여 인증 상태를 판단한다.
    세션 관리가 제대로 이뤄지지 않으면 세션 아이디 훔치기(패킷 스니핑), 세션 하이재킹 등이 일어날 수 있다.

(로컬 스토리지와 세션 스토리지의 차이점, 데이터의 영구성)

  • 로컬 스토리지 (window.localStorage)
    사용자가 지우지 않는 이상 브라우저에 계속 남아있다.
  • 세션 스토리지 (window.sessionStorage)
    윈도우나 브라우저 탭을 닫을 경우 제거된다.

쿠키는 데이터의 낭비가 발생한다. 필요하지 않은 쿠키도 자동으로 요청을 할때마다 전송된다.
이 때 로컬 스토리지와 세션 스토리에 저장된 것은 서버로 자동 전송되지 않기 때문에 활용할 수 있다.

스토리지는 모두 window 객체 안에 들어있으며, 도메인 별 (동일한 프로토콜, 호스트, 포트) 용량 제한도 있다.

*참고글
제로초 블로그, 로컬스토리지, 세션스토리지

profile
기본에 충실하고 싶습니다. #Front-end-developer

0개의 댓글