Network #2 :: Cookie VS Local Storage VS Session Storage

해다·2022년 4월 9일
0

etc.

목록 보기
13/21
post-thumbnail

🙊 잘못 쓴 정보가 있다면 댓글달아주세요!


🍪쿠키? 로컬 스토리지? 세션 스토리지?

웹사이트 어디를 가던지 쿠키를 허용해달라는 얘기가 있는데 쿠키는 뭘까? 로컬 스토리지는? 세션 스토리지는? Storage 얘기가 붙어있는 걸 보니 저장소와 관련이 있는 것 같다.

찾아보니 대강 이런 개념들이었다.

  • 셋 다 데이터베이스를 사용하지 않고 임시적으로 데이터를 저장할 때 사용한다.
    그러고보니 온갖 웹사이트들에 가면 쿠키를 허용해달라는 말이 있던게 그런 느낌인 것 같다. 데이터베이스에 부담을 주기 보다는 서버를 돌리는 입장에서는 이런 임시 저장소들이 효율이 좋겠지?
  • 임시 용도 목적의 데이터나 캐시, 방문 기록 기능, 수시로 변경되는 정보들(장바구니, 좋아요 등)을 저장할 때도 쓰이고, 임시글을 저장할 때에나 그 외에 서버에 저장할 필요가 없는 정보, 보안적인 문제가 될 만한 것들을 저장할 때 쓰인다.
    물론 각자마다 쓰임새는 다르다.

🍪쿠키가 뭔데?

클라이언트에 저장되는 데이터 파일을 말한다. 이때 클라이언트라고 말하기보다는 로컬PC 라고 말하는 편이 더 정확한 것 같다. 클라이언트는 서버PC와 대응되는 개념이기 때문에...
어쨌든!

보안과 크게 상관없는 정보들이 key-value 형태로 들어있고, 캐시랑 비슷한 느낌인데... 재요청 시 저장된 값을 참조하고 재사용한다.

그리고 임시적으로 저장을 하는데 기간이 정해져있다면 대부분 쿠키의 기능이다. 후술할 로컬 스토리지에는 기간 기능이 없기 때문이다.

쿠키는 클라이언트가 요청하지 않아도 브라우저의 요청이 있을 경우 자동으로 서버에서 전송되어서 하드에 저장되고, 같은 도메인에서 쿠키의 값이 공유되기 때문에 만약 공공 컴퓨터를 이용해서 로그인을 하는 등의 행동을 했을 경우 이 쿠키를 악용하여 해킹을 당하는 불상사가 있을 수 있다!

그래서 한창 PC방 다니던 시절에 무조건 쿠키랑 사용기록 다 지우고 나왔는데 요즘 PC방들은 재부팅하면 바로 삭제되나...? 모르겠다.
여튼... 이전 포스팅에서 토큰을 출입증에 비유했는데 토큰은 신분증에 가깝고 쿠키는 통행증에 가까운 느낌?

🏦스토리지는?

정확히는 Web Storage이고, 그 하위에 로컬 스토리지와 세션 스토리지라는 개념이 있다. Storage라는 단어에서 알겠지만 저장소로 쓰이는 개념이며, 쿠키의 단점을 보완하기 위해 HTML5에서 만들어진 기술이다. 마찬가지로 클라이언트에 저장되는 데이터 파일이고, key-value 형태로 들어있는 건 쿠키와 동일하다.

그러면 쿠키와의 차이점은? 서버에 클라이언트에 대한 데이터가 저장되지 않는 것이다! 쿠키는 서버와 클라이언트에 둘다 저장되는데, 스토리지는 자신의 로컬 영역에만 저장을 해둔다.

🤼 로컬 스토리지와 세션 스토리지의 차이점은?

  • 위에서 로컬이라는 단어를 한번 언급 했는데, 거기서 보이듯이 로컬 PC에 영구적으로 클라이언트에 대한 정보를 보관하는 것이 로컬 스토리지이다.
  • 세션 스토리지는? 세션이 종료되면 클라이언트에 대한 정보가 삭제된다. 세션은 일정 시간동안 같은 브라우저로 들어는 요구-상태를 유지시키는 기술... 로 간단히 말하면 웹 브라우저에 접속했다가 브라우저를 종료하는 시점까지의 그 상태, 시간을 세션이라고 한다. 그러니까 세션이 종료되었다는 말은 브라우저 창을 닫으면 정보가 홀라당 삭제된다는 것이다.
    그리고 이때, 새로고침의 여부와는 상관없이 데이터가 유지된다!

❓보안이슈

로컬 스토리지와 세션 스토리지의 차이는 저장이 얼마나 되느냐에 대한 차이이고, 그 외의 별다른 점은 없다고 해서 주로 쿠키 VS (로컬 스토리지 + 세션 스토리지) 로 분류되는 듯 하는데 (물론 이 두 분류가 뚜렷한 차이가 있기도 하다) 로컬과 세션 스토리지 둘 사이에도 보안 이슈가 있는 듯 했다. 이건 지금은 모르겠고 나중에 실습 하면서 접하게 될 것 같으니 나중에 이어 적을 일이 생기면 다시 적겠다!

profile
잘하는 건 아닌데 포기하진 않을거야

0개의 댓글