브라우저 저장소

null·2021년 10월 29일
0

쿠키와 로컬스토리지 / 세션스토리지 그리고 세션

📌 누군가에게 설명한다는 생각으로 적은 기록성 글입니다.  가독성이 떨어질 수 있습니다.

쿠키는 브라우저에 저장되는 데이터인데요.

예를 들어 브라우저가 서버에 request 하면 서버에서는 내가 원하는 데이터를 넣어서 응답을 해주는데, 여기에 브라우저에 저장할 쿠키도 존재합니다. 즉 서버는 쿠키를 통해 브라우저에 데이터를 저장할 수 있다는거죠.

이렇게 저장된 쿠키는 유저가 웹사이트를 다닐 때마다 브라우저가 쿠키도 같이 요청을 보내게 됩니다. 그러다보니 서버에 불필요한 데이터들도 보내게 되어 데이터 낭비로 이어집니다.

세션이란
일정시간 동안 같은 브라우저에서 오는 요구를 하나의 상태로 보고 그 상태를 유지하는 기술.

이러한 점을 개선하기 위해 로컬스토리지와 세션스토리지가 생겼다.

여기에 저장된 데이터들은 서버에 자동으로 저장하지 않습니다.

간단한 차이를 보면 로컬 스토리지는 데이터를 영구적으로 보관할 수 있지만 세션 스토리지는 탭을 닫으면 제거됩니다. 그래서 자동로그인을 이용 할 경우 로컬, 일회성 로그인을 이용할 경우 세션을 이용합니다.
로컬스토리지는 브라우저 자체에 데이터를 저장해서 브라우저를 종료해도 데이터가 유지댐. 그러나 다른 도메인에선 불가.
세션스토리지는 각 세션마다 데이터가 개별적으로 저장되며 같은 도메인이라도 세션이 다르면 데이터에 접근할 수 없다.
최근검색어, 장바구니와 같은 곳에서 사용하기 좋다.

추가적으로 쿠키는 만료기한이 있고, 용량 제한이 있습니다.

http는 클라이언트가 서버에 요청을 보내고 서버가 클라이언트에게 맞는 응답을 보내면 연결을 끊는 특성이 있다.
그리고 연결을 끊는 순간 클라이언트와 서버의 통신이 끝나면 상태정보를 유지 하지 않는데 이러한 점을 보안하기 위해 나온 것이 쿠키 / 세션.
쿠키는 브라우저가 서버에 request 하면 서버에서는 내가 원하는 데이터를 넣어서 응답을 해주는데, 여기에 브라우저에 저장할 쿠키도 존재합니다. 즉 서버는 쿠키를 통해 브라우저에 데이터를 저장할 수 있다는거죠.
이렇게 저장된 쿠키는 유저가 웹사이트를 다닐 때마다 브라우저가 쿠키도 같이 요청을 보내게 됩니다. 그러다보니 서버에 불필요한 데이터들도 보내게 되어 데이터 낭비로 이어집니다.
데이터 저장 위치는 쿠키. 세션은 서버.
세션이란 일정 시간동안 같은 브라우저로 부터 들어오는 일련의 요구를 하나의 상태로 보고 그 상태를 유지하는 것.
예를들어 로그인을 할 때 유저 a, 비밀번호를 서버레 보냅니다. 서버는 세션db에 a 유저에 대한 세션 id를 생성합니다. 해당 세션 id는 쿠키를 통해 브라우저에 와서 저장됩니다.
다음부터 페이지를 이동할 때마다 브라우저는 세션 id를 가진 쿠키를 서버에게 보내고 서버는 세션 db를 통해 확인을 한다. 이걸 페이지 옮길 때마다 반복하게 됩니다.
쿠키는 저장 위치 때문에 보안 문제가 있어. 다만 세션을 쿠키를 이용해서 세션아이디만 저장하고 서버에서 처리 하기 때문에 보안성이 좋음.

웹스토리지는 서버가 아닌 클라이언트에 데이터를 저장할 수 있도록 지원하는 HTML5의 새로운 기능.
쿠키와 유사하지만 용량도 훨 크고..
로컬 세션스토리지가 있다.
로컬 스토리지는 사용자가 특별하게 지우지 않는한 브라우저에 영구적으로 저장이 된다.
도메인이 다르면 안댐.
세션은 세션마다 데이터가 개별적으로 저장..도메인이 같더라도 세션이 다르면 데이터 접근 불가.

참고:

니꼴라스 강의
https://racoonlotty.tistory.com/entry/%EC%BF%A0%ED%82%A4%EC%99%80-%EC%84%B8%EC%85%98-%EA%B7%B8%EB%A6%AC%EA%B3%A0-%EB%A1%9C%EC%BB%AC-%EC%8A%A4%ED%86%A0%EB%A6%AC%EC%A7%80%EC%99%80-%EC%84%B8%EC%85%98-%EC%8A%A4%ED%86%A0%EB%A6%AC%EC%A7%80

profile
개발이 싫어.

0개의 댓글