세션과 쿠키
세션(Session)과 쿠키(Cookie)는 웹 애플리케이션에서 클라이언트와 서버 간의 상태 정보를 유지하는 데 사용되는 두 가지 방법입니다. 세션과 쿠키의 주요 차이점을 알아보겠습니다.
쿠키(Cookie)
1. 저장 위치
- 쿠키는 클라이언트의 브라우저에 저장됩니다. 웹 서버가 클라이언트에게 설정한 작은 데이터 파일입니다.
2. 데이터 용량
- 쿠키는 일반적으로 4KB 이하의 작은 용량을 가지며, 브라우저와 서버 간에 소량의 데이터를 주고받는 데 사용됩니다.
3. 수명
- 쿠키는 만료 날짜를 지정할 수 있으며, 지정된 시간 동안 유지됩니다. 만료 시간이 설정되지 않으면, 브라우저가 닫힐 때까지 유지됩니다.
- 영구 쿠키(Persistent Cookie): 만료 시간이 설정되어 브라우저를 닫아도 지정된 기간 동안 유지되는 쿠키.
- 세션 쿠키(Session Cookie): 만료 시간이 설정되지 않아 브라우저가 닫힐 때 삭제되는 쿠키.
4. 보안
- 쿠키는 클라이언트 측에 저장되므로 보안에 취약할 수 있습니다. 중요한 정보는 쿠키에 저장하지 않는 것이 좋습니다.
- HttpOnly 속성을 사용하여 자바스크립트를 통해 쿠키에 접근하는 것을 막을 수 있습니다.
- Secure 속성을 사용하여 HTTPS 연결에서만 쿠키를 전송할 수 있습니다.
4-1 전송 방식
- 쿠키는 HTTP 요청 시마다 클라이언트에서 서버로 자동으로 전송됩니다. HTTP 헤더에 포함되어 전송됩니다.
4-2 사용 예
- 사용자의 로그인 상태 유지, 사용자 선호 설정 저장, 트래킹 정보 등.
세션(Session)
1. 저장 위치
세션 데이터는 서버에 저장됩니다. 클라이언트는 세션 ID를 쿠키나 URL 매개변수를 통해 서버에 전달하여 세션을 식별합니다.
2. 데이터 용량
- 세션은 서버에 저장되므로, 클라이언트 측의 용량 제한이 없습니다. 필요한 만큼의 데이터를 저장할 수 있습니다.
3. 수명
- 세션은 기본적으로 일정 시간 동안(예: 30분) 유효하며, 사용자가 활동을 계속하면 시간이 연장될 수 있습니다. 세션의 수명은 서버 설정에 따라 조정할 수 있습니다.
- 브라우저가 닫히거나, 세션 타임아웃이 발생하면 세션이 종료됩니다.
4. 보안
- 세션 데이터는 서버에 저장되므로 클라이언트가 직접 접근할 수 없습니다. 비교적 안전하지만, 세션 ID를 도난당하면 세션 하이재킹이 발생할 수 있습니다.
- SSL/TLS를 사용하여 세션 ID를 암호화하는 것이 좋습니다.
4-1. 전송 방식
- 세션 ID는 쿠키나 URL 매개변수를 통해 클라이언트와 서버 간에 전송됩니다. 일반적으로 쿠키를 통해 전송됩니다.
4-2. 사용 예
- 사용자 인증 상태 유지, 장바구니 정보 저장, 사용자별 데이터 관리 등.
쿠키와 세션의 차이점 요약
특징
|
쿠키
|
세션
|
저장 위치
|
클라이언트 브라우저
|
서버
|
데이터 용량
|
작음(4KB 이하)
|
서버 저장소 용량에 따라 다름
|
수명
|
만료 시간에 따라 다름
|
브라우저 종료 시 또는 세션 타임아웃 시 종료
|
보안
|
비교적 낮음, 클라이언트에서 접근 가능
|
비교적 높음, 서버에 저장
|
전송 방식
|
클라이언트에서 서버로 자동 전송
|
세션 ID를 쿠키 또는 URL 매개변수를 통해 전송
|
사용 예
|
로그인 상태 유지, 사용자 설정 저장
|
사용자 인증 상태 유지, 사용자별 데이터 관리
|
쿠키는 클라이언트 측에서 상태 정보를 유지하는 데 유용하고,
세션은 서버 측에서 사용자 정보를 안전하게 관리하는 데 적합합니다.
'IT > 면접질문' 카테고리의 다른 글
WEB WAS 차이 (0) | 2024.06.20 |
---|