02.10 JWT 저장 (쿠키, Local storage, Session storage)
2023. 2. 10. 14:30ㆍ개발일지
CooKie
- Key-Value 형식의 문자열 덩어리이며, 클라이언트가 어떠한 웹사이트를 방문할 경우, 그 사이트가 사용하고 있는 서버를 통해 클라이언트의 브라우저에 설치되는 작은 기록 정보 파일입니다.
(각 사용자마다의 브라우저에 정보를 저장하니 고유 정보 식별이 가능합니다.)
CooKie 인증방식
브라우저(클라이언트)가 서버에 요청(접속)을 보냅니다.
서버는 클라이언트의 요청에 대한 응답을 작성할 때, 클라이언트 측에 저장하고 싶은 정보를 응답 헤더의 Set-Cookie에 담습니다.
이후 해당 클라이언트는 요청을 보낼 때마다, 매번 저장된 쿠키를 요청 헤더의 Cookie에 담아 보냅니다.
서버는 쿠키에 담긴 정보를 바탕으로 해당 요청의 클라이언트가 누군지 식별하거나 정보를 바탕으로 추천 광고를 띄웁니다.
Cookie 방식의 단점
- 가장 큰 단점은 보안에 취약하며, 요청 시 쿠키의 값을 그대로 보내기 때문에 유출 및 조작 당할 위험이 존재합니다.
- 쿠키에는 용량 제한이 있어 많은 정보를 담을 수 없습니다.
- 웹 브라우저마다 쿠키에 대한 지원 형태가 다르기 때문에 브라우저간 공유가 불가능합니다
- 쿠키의 사이즈가 커질수록 네트워크에 부하가 심해집니다.
LocalStorage / SessionStorage API 소개
html5에서는 좀 더 쉽고 간단한 저장소 제공을 위해 새로운 localStorage와 sessionStorage API를 제공하며, 둘 다 저장 공간으로 사용할 수 있는데 이 둘의 가장 큰 차이점이라면 저장소로서의 기능은 대부분 동일합니다. 단, sessionStorage의 경우 세션이 종료되면 저장된 데이터도 함께 사라진다는 점이 다른 점입니다.
◆ Tip
LocalStorage
로컬에 도메인 별로 지속되는 storage
LocalStorage는 시간제한이 없고 브라우저가 꺼져도 죽지 않습니다.
값을 지우려면 직접 지워줘야합니다.
SessionStorage
세션이(프로세스, 탭, 브라우저) 종료될 때까지 지속되는 Storage
세션 스토리지는 LocalStorage와 쓰는 느낌이 비슷한데 커다란 차이점이 있으며, 그것은 소멸 타이밍입니다.
LocalStorage는 소멸타이밍이 없어서 직접 지워줘야하지만 SessionStorage는 세션의 종료시 죽음을 맞이합니다.
'개발일지' 카테고리의 다른 글
02.11 @PathVariable (0) | 2023.02.11 |
---|---|
02.11 ResponseEntity (0) | 2023.02.11 |
02.09 TIL (0) | 2023.02.09 |
02.08 JPA 심화 (0) | 2023.02.08 |
02.07 TIL (0) | 2023.02.07 |