Cookie만으로 통신할 시 단점이 있다.
1. 쿠키 정보가 웹 브라우저에 저장된다.
- 민감한 정보들이 안전하지 않은 채로 저장됨
- 웹 브라우저 간 공유 불가 (지역성 문제; 매 웹 브라우저 하는 검색같은 행위가 해당 브라우저에만 저장됨)
2. 쿠키는 Domain + Path만 일치하면 해당 웹 서버로 모든 쿠키를 담아냄
- 쿠키로 저장하려는 정보량이 많아지고, 요청 크기가 커짐 (실제요청보다 쿠키가 커지는 경우)
- 불필요한 Network Overhead (비용의 문제로 연결)
Storage (웹 브라우저 내 저장)
- 원래부터 stateful HTTP 를 위한 기술은 아님.
- HTML5 표준 등장 이전에는 cookie만을 썼어야 했음. HTML5 이후부터 사용.
- 유저에 의해 변경된 옵션 상태 등 필요에 따른 조회가 필요할 때
- 웹 서버에게 반복적으로 전달하기 위한 작은 정보는 Cookie를,
웹 브라우저만 사용 가능한 큰 정보는 Storage를 사용. - Storage의 종류
- Local Storage : 웹 브라우저 창이 닫혀도 영구 저장
- Session Storage : 웹 브라우저 창이 닫히면 삭제
- Storage 사용 예시
- FE 개발자가 최근에 로그인 했던 수단을 표기하기 위해 Local Storage 내 수단 저장
Session (웹 서버 내 저장)
- 웹 브라우저 쿠키에 저장하던 값을 웹 서버측에 별도로 저장
- Session을 사용한다고 Cookie를 사용하지 않는 것 아니다.
- 웹 브라우저 내 Cookie는 어떤 세션인지 알기 위한 ID 값 저장
- 다만 Cache와 같이 임시 저장과 유사하게 기존 값을 버리는 LRU 알고리즘이나 Batch 작업 필요
- 속도가 매우 중요하기에 메모리 기반 DB인 Redis를 많이들 사용 (그렇지만 비싸다)
더보기
batch란?
데이터를 실시간 처리하는 작업이 아닌, 일괄적으로 모아서 한번에 처리하는 작업을 말함
ex) 은행의 정산 작업과 같은 경우, Batch를 통해 일괄적으로 처리함
정리하자면, batch는 대량의 데이터를 특정 시간에 일괄적으로 처리하는 작업이라고 보면 됨.
Storgae, Session을 통해서 보완되는 쿠키의 단점
1. 쿠키 정보가 웹 브라우저에 저장된다.
- 민감한 정보들이 안전하지 않은 채로 저장됨 ➡️ Session에 민감 정보를 안정하게 저장
- 웹 브라우저 간 공유 불가 (지역성 문제; 매 웹 브라우저 하는 검색같은 행위가 해당 브라우저에만 저장됨)
➡️ 여러 웹 브라우저를 돌아다녀도 서버에 중앙 기록됨
2. 쿠키는 Domain + Path만 일치하면 해당 웹 서버로 모든 쿠키를 담아냄
- 쿠키로 저장하려는 정보량이 많아지고, 요청 크기가 커짐 (실제요청보다 쿠키가 커지는 경우)
➡️ 서버에 저장되기에 이로 인한 요청 방해 X- 불필요한 Network Overhead (비용의 문제로 연결)
✅ 서버에 알려주지 않아도 되는 정보는 Storage에 저장
- 불필요한 Network Overhead (비용의 문제로 연결)
'정보 > WEB' 카테고리의 다른 글
npx 명령 시 의존성 트리가 변하는 이유 (1) | 2024.09.24 |
---|---|
CSRF, 이를 막기 위한 CORS (2) | 2024.09.10 |
Cookie 개요, 브라우저에서 쿠키의 작동 (1) | 2024.09.03 |
Proxy Server (1) | 2024.08.30 |
HTTP Cache 재검증 기준 헤더와 조건부 요청 (0) | 2024.08.29 |