Cookie, Session
HTTP는 상태가 없는(Stateless) 프로토콜이기 때문에 사용자가 웹 브라우저를 통해서 특정 웹 사이트에 접속하게 될 경우 어떤 사용자가 접속했는지에 대한 정보를 파악 불가능
- 쿠키 또는 세션을 사용하여 사용자를 구분하고 각 사용자에 맞는 정보를 제공
1. Cookie
- 클라이언트의 웹 브라우저에 저장되는 작은 데이터 조각, 서버가 클라이언트의 요청을 식별하는데 사용
- 해커가 탈취할 수 있기 때문에 보안에 취약 (아이디, 비밀번호 등의 민감한 정보를 저장 ❌)
- 세션 ID 관리, 서버에 저장해야 할 민감한 정보에 대한 식별자 ID
- 개인화, 사용자 선호 및 테마
- 트래킹, 사용자 행동 기록 및 분석
2. Session
- 브라우저가 서버에 연결되어 있는 동안 유지되는 데이터 집합
- 사용자가 웹사이트에 방문하여 서버에 요청을 보내면 식별할 수 있는 세션 ID를 Set-Cookie 헤더로 클라이언트에게 전송
- 서버는 클라이언트를 식별하여 그에 맞는 정보를 응답으로 전송
- 민감한 정보 관리, 사용자의 비밀번호 및 개인정보
3. Cookie와 Session 차이점
Cookie
- 클라이언트에 저장
- 사용자가 삭제하거나 정해진 시간만큼 유지 (브라우저가 닫혀도 삭제 ❌)
- 문자열만 저장
- 속도가 빠름
- 보안에 취약
Session
- 서버에 저장 (메모리 또는 데이터베이스)
- 브라우저가 꺼질 경우 삭제
- 문자열, 객체 저장 가능
- 속도가 비교적 느림
- 서버에서 데이터를 갖고 있기 때문에 비교적 보안이 좋음