250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- this
- 함수형 프로그래밍 특징
- 리액트 렌더링 최적화
- FP 특징
- 테스트 코드 툴 비교
- 알고리즘
- 항해99
- 항해99 미니프로젝트
- gql restapi 차이
- 자바스크립트 엔진 v8
- 항해99 부트캠프
- 코어자바스크립트
- 리액트
- Js module
- 실행컨텍스트
- js배열 알고리즘
- 웹팩 기본개념
- 리덕스
- toggle-btn
- 리액트 메모
- JS module system
- chromatic error
- 리액트 메모이제이션
- v8 원리
- 타입스크립트
- next js
- 웹 크롤링
- 항해99 사전스터디
- jwt
- 렌더링 최적화
Archives
- Today
- Total
Jaeilit
TIL3(저장소Storage) 본문
728x90
웹 저장소
데이터를 저장을 할 때 서버 DB을 통해서 저장을 하는데,
굳이 서버에서 가지고 있지 않아도 되는 데이터들을 저장해야 할 때가 있을 겁니다.
별로 중요하지 않거나, 지워져도 되거나, 같은 말이지만 유실되도 되거나 등등
그럴때 사용 하는것이 웹 저장소입니다.
중요한 정보는 절대 저장하지 않는다!
1. Local Storage
- JavaScript 로 조작
- 도메인, 프로토콜, 포트로 묶여있기 때문에 같으면 같은 스토리지를 공유
- 브라우저가 달라도 도메인만 같다면 동일한 로컬 스토리지를 사용
- 서버에 전송하지 않음(쿠키보다 더 많은 자료를 보관 가능) 로컬 스토리지 5mb 쿠키 4kb
- 사용자가 지우지 않는 이상 브라우저에 계속 남아 있음
- 클라이언트 저장
자동로그인과 같이 지속적으로 필요한 데이터를 저장
2. Session Storage
로컬 스토리지와의 다른점은 데이터의 영구성입니다.
데이터가 윈도우나 브라우저 탭을 닫을 경우 제거됨,
3. 쿠키
- 사용자의 유효시간을 정할수 있음(브라우저가 종료되도 인증은 유지됨)
- 클라이언트의 상태 정보를 로컬에 저장했다가 참조
- 클라이언트에 300개까지 쿠키저장 가능, 하나의 도메인당 20개의 값만 가질 수 있음 하나당 4kb까지 저장
쿠키의 동작방식
- 클라이언트 페이지를 요청
- 서버에서 쿠키를 생성
- HTTP 헤더에 쿠키를 포함 시켜 응답
- 브라우저가 종료되도 쿠키 만료기간이 남아있다면 클라이언트에서 보관
- 같은 요청을 할 경우 HTTP 헤더에서 쿠키를 함께 꺼냄
- 서버에서 쿠키를 읽어 이전 상태 정보를 변경 할 필요가 있을 때 쿠키를 업데이트하여 변경된 쿠키를 HTTP 헤더에 포함시켜 응답
쿠키를 항상들고 서버와 통신한다고 생각하면 편할듯 하다
쿠키 사용의 예
- 로그인시, 아이디와 비밀번호 저장 하시겠습니까?
- 쇼핑몰의 장바구니 등
- 팝업종료 더 이상 보지않음 등
쿠키는 만료 기한이 있는 키 - 값 저장소
서버는 요청 자체만으로 그 요청이 누가 보냈는지 알 수 없기 때문에 응답을 보낼 수가 없다.
하지만 쿠키에 내 정보가 담겨서 서버로 보내진다면 서버는 쿠키를 읽어 내가 누군지 알 수 있다.
4kb의 용량제한을 다 쓰게 된다면 항상 서버와 주고 받는데 어려움이 있다.
그래서 이 때 로컬 스토리지와 세션스토리지를 활용한다.
쿠키와 웹 스토리지
쿠키의 단점을 보완해 HTML5 에서 웹 스토리지가 탄생
쿠키의 단점
- 매 HTTP 요청마다 포함되어 api 호출로 서버에 부담
- 쿠키의 용량이 작음(4kb)
- 암호화가 존재하지 않아서 보안상 위험
728x90
'TIL' 카테고리의 다른 글
TIL(6) 배열메서드 Array.map(forEach), filter, concat, from (0) | 2021.09.21 |
---|---|
TIL4(JWT, API) (0) | 2021.09.19 |
TIL2(미니프로젝트 완성) (0) | 2021.09.17 |
TIL1(Git push) (0) | 2021.09.16 |
CSS 살펴보기 (단위) (0) | 2021.09.10 |