728x90
쿠키(Cookie)
- 개념: 쿠키는 클라이언트(사용자의 브라우저)에 저장되는 작은 텍스트 파일입니다.
- 저장 위치: 클라이언트(브라우저) 측에 저장됩니다.
- 생명 주기: 만료 날짜를 설정할 수 있어 일정 기간 동안 유지됩니다. 영구 쿠키(만료 날짜가 설정됨)와 세션 쿠키(브라우저 종료 시 삭제)로 나뉩니다.
- 보안: 클라이언트에 저장되므로 보안에 취약할 수 있으며, 중요한 정보를 저장하기에는 위험합니다. HTTPS로 전송하거나, HttpOnly, Secure 옵션을 설정하여 보안을 강화할 수 있습니다.
- 용도: 자동 로그인, 사용자 설정 저장, 방문자 추적 등 상태 정보를 간단히 저장할 때 사용됩니다.
쿠키 예시
Set-Cookie: userID=1234; Expires=Wed, 21 Oct 2025 07:28:00 GMT; Path=/
세션(Session)
- 개념: 세션은 서버 측에 사용자 정보를 저장하여 사용자의 상태를 유지하는 방식입니다.
- 저장 위치: 서버에 저장되며, 각 클라이언트는 고유한 세션 ID를 부여받아 서버와의 연결을 식별합니다.
- 생명 주기: 세션은 일반적으로 브라우저를 종료하면 만료되며, 서버에 일정 시간 동안 유지됩니다. 서버에 설정된 세션 만료 시간에 따라 자동으로 삭제될 수 있습니다.
- 보안: 쿠키보다 상대적으로 보안이 높지만, 세션 ID가 쿠키에 저장되므로 세션 하이재킹(Session Hijacking) 공격에 취약할 수 있습니다.
- 용도: 로그인 상태 유지, 사용자 활동 추적, 장바구니 정보 저장 등 보안이 필요한 정보를 저장할 때 사용됩니다.
쿠키와 세션의 주요 차이점
구분쿠키(Cookie)세션(Session)
저장 위치 | 클라이언트(브라우저) | 서버 |
생명 주기 | 설정된 만료 날짜까지, 브라우저 종료 시 삭제 가능 | 브라우저 종료 시 삭제, 서버에 설정된 시간에 따라 유지 |
보안성 | 보안에 취약, 민감 정보 저장에 부적합 | 비교적 안전하지만 세션 ID 탈취 가능성 있음 |
용량 제한 | 약 4KB | 서버 설정에 따라 제한 |
사용 예시 | 자동 로그인, 사용자 설정, 방문 기록 저장 | 로그인 상태, 장바구니, 사용자 활동 추적 |
쿠키와 세션의 동작 방식
- 쿠키: 서버는 클라이언트에 특정 정보를 쿠키로 저장하고, 이후 클라이언트가 해당 사이트에 접속할 때마다 쿠키를 서버로 전송합니다.
- 세션: 서버는 클라이언트에 고유한 세션 ID를 부여하고, 클라이언트는 이 세션 ID를 쿠키에 저장하여 서버와 통신할 때마다 전송합니다. 서버는 세션 ID로 클라이언트를 식별하여 데이터를 유지합니다.
결론
- 쿠키는 클라이언트에 간단한 정보를 저장하여, 서버의 부담을 줄이고 빠르게 접근할 수 있도록 하는 데 유리합니다.
- 세션은 서버에 중요한 정보를 저장하여 보안이 중요한 상황에서 활용합니다.
728x90
'CS > 네트워크' 카테고리의 다른 글
[네트워크] Stateful vs Stateless (0) | 2024.10.30 |
---|---|
[네트워크] 블로킹 vs 논블로킹(Blocking vs Non-blocking) (0) | 2024.10.30 |
[네트워크] DNS(Domain Name System) (0) | 2024.10.30 |
[네트워크] GET방식과 POST방식의 차이 (1) | 2024.10.30 |
[네트워크] RESTful의미와 설계규칙 (0) | 2024.10.30 |