웹 브라우저에 저장하는 key-value 구조의 데이터
웹사이트와 사용자의 브라우저 사이에 정보를 기록하고 유지하기 위해 사용됩니다
HTTP 프로토콜은 기본적으로 무상태이기 때문에, 쿠키는 서버가 클라이언트를 식별하고, 상태 정보를 유지하는데 사용됩니다.
쿠키의 특징
쿠키의 인증 방식
장점
HTTP 프로토콜은 기본적으로 무상태이기 때문에, 쿠키는 서버가 클라이언트를 식별하고, 상태 정보를 유지하는데 사용할 수 있음
( 로그인 유지, 상태 정보 유지 등등 )
단점
보안에 매우 취약하고, 용량에 제한이 있기에 많은 정보를 담을 수 없습니다.
브라우저 간의 공유가 불가능합니다.
웹에서 사용자가 웹사이트에 접속한 순간부터 종료할 때까지의 일정 기간 동안, 사용자 관련 정보를 서버에 저장하고 관리하는 기술
세션의 작동 원리
유저가 웹사이트에서 로그인하면 세션이 서버 메모리( 혹은 데이터베이스 ) 상에 저장됩니다.
( 이때, 세션을 식별하기 위한 Session Id를 기준으로 정보를 저장합니다. )
서버에서 브라우저에 세션 쿠키 형태로 Session Id를 저장합니다.
세션 쿠키 : 만료 기한을 명시적으로 설정하지 않은 쿠키
⇒ 만료 기한이 없으면 브라우저는 해당 쿠키를 현재 세션이 유지되는 동안만 메모리에 저장합니다.
⇒ 따라서 사용자가 브라우저 창을 닫거나 종료하면, 브라우저의 이 세션 쿠키도 함께 삭제됩니다
⇒ 이후 사용자가 다시 브라우저를 접속해도 서버로 보낼 세션 ID를 가지고 있지 않기에 새로운 사용자라고 인식합니다.
쿠키에 정보가 담겨있기 때문에 브라우저는 해당 사이트에 대한 모든 Request에 Session Id를 쿠키에 담아 전송합니다.
서버는 클라이언트가 보낸 Session Id 와 서버 메모리로 관리하고 있는 Session Id를 비교하여 인증을 수행합니다.
쿠키는 브라우저에 저장되며, 세션은 서버단에서 저장됩니다.
세션, 쿠키 중 어떤걸 사용할까
세션은 서버에 사용자 정보를 저장하지만, 쿠키는 클라이언트에 데이터를 저장하므로 서버의 부하를 줄이고 확장성을 높이기 위해 세션 대신 쿠키를 사용하지만, 데이터에 민감할 경우 JWT + Cookie 조합을 사용하기도 합니다
나중에 다시 필요할 데이터나 계산 결과를 임시로 저장해 두는 빠르고 작은 저장소
작동 원리
캐싱이란
데이터나 계산 결과를 캐시에 저장하는 행위
주로 데이터를 반복적으로 가져오거나 계산하는 작업을 최소화하고 성능을 향상시키기 위해 사용합니다.
캐시의 장점
캐시의 종류 ( 다양한 위치에서 사용 )
캐시는 웹 서비스의 다양한 계층에서 사용됩니다.