CS

세션 쿠키 캐시 토큰 페킷

baek-dev 2025. 1. 27. 18:56

1. 세션(Session)

 

세션은 서버에서 사용자 상태를 유지하기 위해 사용되는 저장소임.

사용자가 웹사이트에 접속하면 서버는 세션 ID를 생성하여 클라이언트에게 전달하고, 이후 요청에서 세션 ID를 통해 사용자를 식별함.

 

특징

세션 데이터는 서버에 저장됨.

클라이언트는 세션 ID만 보유하며, 일반적으로 쿠키에 저장됨.

보안이 중요할 때 사용됨.

 

장점

서버에서 데이터를 관리하므로 보안성이 높음.

클라이언트가 세션 데이터를 직접 보지 않음.

 

단점

서버 메모리를 사용하므로 많은 사용자가 접속하면 성능 저하 가능.


2. 쿠키(Cookie)

 

쿠키는 클라이언트(브라우저)에 데이터를 저장하기 위한 기술임.

작은 텍스트 파일 형태로 브라우저에 저장되며, 클라이언트와 서버 간에 정보를 교환하는 데 사용됨.

 

특징

데이터가 클라이언트에 저장됨.

서버가 클라이언트에 특정 데이터를 저장하도록 요청할 수 있음.

HTTP 요청 시 브라우저가 쿠키를 자동으로 서버에 전송.

 

장점

클라이언트에서 데이터를 저장하므로 서버 부담이 적음.

세션과 연계하여 세션 ID를 관리하는 데 사용됨.

 

단점

데이터 크기 제한(대부분 브라우저는 4KB로 제한).

클라이언트에서 쉽게 읽히고 조작될 수 있으므로 민감한 데이터는 저장하지 않아야 함.


3. 캐시(Cache)

 

캐시는 자주 사용되는 데이터를 미리 저장하여 요청에 대한 응답 속도를 향상시키는 메커니즘임.

 

특징

클라이언트(브라우저) 또는 서버 쪽에 저장 가능.

정적 파일(CSS, JS, 이미지)과 같이 변하지 않는 데이터에 적합.

 

장점

성능 최적화: 데이터 요청을 줄이고 로딩 속도를 높임.

네트워크 사용량 감소.

 

단점

캐싱된 데이터가 오래된 경우, 최신 정보를 제공하지 않을 수 있음.

캐시 무효화를 관리하는 것이 필요함.


4. 토큰(Token)

 

토큰은 인증, 권한 부여, 정보 교환을 위해 사용되는 임의의 데이터 문자열임.

클라이언트가 서버에 접근할 때, 토큰을 요청 헤더에 포함하여 신원을 인증함.

 

종류

JWT (JSON Web Token): 가장 널리 사용되는 토큰 형식.

OAuth Access Token: OAuth 프로토콜에서 사용되는 인증 토큰.

 

특징

서버는 상태를 유지하지 않음(무상태).

토큰에는 정보가 포함되며, 이 정보를 서버가 신뢰함.

토큰은 클라이언트 쪽에 저장됨(브라우저 로컬 스토리지, 쿠키 등).

 

장점

확장성: 서버에서 세션을 관리할 필요가 없음.

다른 시스템 간 인증에도 활용 가능.

 

단점

민감한 데이터 유출 위험(적절한 저장소와 보안 필요).

토큰이 탈취되면 악용될 가능성 있음.


5. 패킷(Packet)

 

패킷은 네트워크를 통해 데이터를 전송할 때 작은 조각으로 나눈 데이터 단위임.

인터넷과 같은 네트워크는 데이터를 패킷 단위로 송수신함.

 

구조

1. 헤더(Header): 송수신 IP 주소, 패킷 번호 등 메타정보 포함.

2. 페이로드(Payload): 실제 데이터.

3. 트레일러(Trailer): 에러 검증 정보.

 

특징

네트워크 혼잡을 줄이고 효율적으로 데이터를 전달함.

TCP/IP 프로토콜 스택에서 사용됨.

 

장점

데이터 손실 발생 시 해당 패킷만 재전송 가능.

데이터 흐름을 효율적으로 관리.

 

단점

데이터가 분할되므로 조립 시간이 필요함.

패킷 손실 시 성능 저하 가능.


구분 설명 사용 위치
세션 서버에서 사용자 상태를 관리 서버(메모리, 데이터베이스)
쿠키 클라이언트에 데이터를 저장 브라우저
캐시 자주 사용하는 데이터를 미리 저장하여 성능 최적화 브라우저, 서버
토큰 인증과 권한 부여를 위해 사용되는 데이터 문자열 클라이언트, 서버 간 인증
패킷 네트워크를 통해 전송되는 데이터 단위 네트워크

 

 

 

 

출처 : ChatGPT

'CS' 카테고리의 다른 글

화이트보드 설계  (1) 2025.01.30
CORS (Cross-Origin Resource Sharing)  (0) 2025.01.29
JAR와 WAR  (1) 2025.01.26
상태성(Stateful)과 무상태성(Stateless)  (0) 2025.01.25
CSRF  (0) 2025.01.19