✅ 포스팅 요약
제곧내.
내가 헷갈려서 내가 보려고 만든 쿠키와 세션의 차이점을 정리한 포스팅이다.
공통점
쿠키랑 세션은 일단 모두 웹 개발에서 사용되는 메커니즘으로, 상태(state)를 유지(maintain)하고 사용자 정보(user information)을 관리(manage)한다.
차이점
쿠키랑 세션은 아래의 6가지의 기준에서 차이점을 보인다.
기준별 자세한 차이점은 아래 메인에서 다루겠다.
- 저장 위치(Storage Location)
- 저장 데이터(Data Storage)
- 데이터 용량(Data Capacity)
- 보안(Security)
- 만료(Expiration)
- 확장성(Scalability)
🚨 잘못된 정보가 있으면 언제든지 댓글로 알려주세요. (아무도 안 보는 것 같지만...쩝)
✔ 쿠키(Cookie)란?
-
저장 위치
- 클라이언트 측, 정확히 말하면 사용자의 브라우저에 저장된다.
- 따라서 쿠키에 저장된 정보는 사용자가 임의로 수정할 수 있다.
-
저장 데이터
- 쿠키의 데이터는 key-value 포맷으로 작은 텍스트 파일에 저장된다.
- 쿠키에 저장된 데이터는 각 요청마다 클라이언트와 서버 사이에서 왔다 갔다 한다.
-
데이터 용량
- 세션에 비해 사용할 수 있는 스토리지 용량이 작아 적은 양의 데이터만 저장할 수 있다.
-
보안
- 세션에 비해 보안이 취약하다.
- 클라이언트 측에 저장되기 때문에 변조(tampering)나 도용(theft)의 위험이 있다.
-
만료
- 쿠키는 서버 또는 클라이언트에 의해 만료 날짜를 설정할 수 있다.
- 이러한 데이터는 특정 기간이 지나면 만료된다.
-
확장성
- 쿠키는 클라이언트 측에 저장되므로 서버 리소스에 큰 영향을 미치지 않고 확장이 가능하다.
✔ 세션(Session)이란?
-
저장 위치
- 서버 측에 저장된다.
- 따라서 세션에 저장된 정보는 사용자가 임의로 수정할 수 없다.
- 참고로, REST API에서 사용하는 stateless system에서는 session data가 발생하지 않는다.
-
저장 데이터
- 세션은 데이터를 서버 측에 저장하고, 각 클라이언트마다 고유한 식별자(session ID)를 할당한다.
- 이 고유 식별자(session ID)는 일반적으로 쿠키에 저장되거나, URL에 추가되어 세션을 식별하는데 사용된다.
-
데이터 용량
- 쿠키에 비해 사용할 수 있는 스토리지 용량이 커 많은 양의 데이터를 저장할 수 있다.
-
보안
-
만료
- 세션에 저장되는 데이터에는 대부분 사전에 정의된 타임아웃(timeout)이 존재하며, 이 시간이 지나거나 사용자가 로그아웃 시 서버에서 제거된다.
-
확장성
- 세션은 서버 측 저장소를 필요로 하므로 많은 수의 활성 세션을 유지하면 서버 리소스를 소모할 수 있다.