클라이언트가 웹 서버로 데이터를 요청하고 서버는 요청받은 데이터를 보내준다.
2가지 통신 방식
HTTP - 요청을 보낸 경우에만 응답하는 단방향 통신 응답 후 연결 종료
Socket - 서버와 클라이언트가 연결을 유지 실시간 데이터 (스트리밍, 게임)
HTTP는 요청과 응답이 끝나면 바로 연결을 끊어버리고(비연결성),
서로의 데이터를 기억하지 않는데(무상태성),
기억이 필요한 데이터를 위해 쿠키나 웹 스토리지를 사용한다.
브라우저에 저장되는 작은 크기의 문자열로 (최대 4KB)
서버에 요청할 때 마다 함께 보내서(성능문제)
사용자를 식별할 수 있게 해준다.
만료시간을 명시하면 브라우저를 종료해도 데이터가 유지된다. (보안문제)
도메인 당 20개의 쿠키를 가질 수 있다.
데이터를 서버에 저장하는 것으로
쿠키의 성능과 보안 문제를 해결 할 수 있다.
고유 ID를 생성해서 클라이언트를 식별한다.
브라우저를 통해 데이터를 저장하는 HTML5 API
저장만 할 뿐 서버에 전송되지 않는다.
쿠키와 기능은 유사하지만 저장 공간이 더 크다. (5MB)
동기식으로 메인 스레드 연산을 중단 시킨다.
도메인당 1개 스토리지가 생성되고,
다른 창이어도 같은 도메인에선 동일한 데이터를 공유한다.
브라우저를 닫았다 열어도 계속 유지된다.
직접 삭제 하지 않는 이상 영구 저장된다.
새 창, 새 탭의 단위로 스토리지가 생성되고
데이터를 공유하지 않는다.
브라우저가 열려있는 동안 유지된다. (임시 저장소)
서비스 워커가 제공하는 기능 중 하나
네트워크로 불러온 정적 리소스를 캐싱할 때 활용
비동기 동작하여 메인 스레드 연산에 영향을 주지 않는다.
브라우저에서 많은 양의 구조화된 데이터를 관리하기 위한 API
인덱스를 사용해 데이터를 고성능으로 탐색
비동기 동작