obsidian://open?vault=Documents&file=Spring%2F%EC%BF%A0%ED%82%A4%EC%99%80%20%EC%84%B8%EC%85%98
쿠키(Cookie)와 세션(Session)의 개념:
- 쿠키: 클라이언트 측에 저장되는 작은 데이터 조각으로, 브라우저에 의해 관리됩니다. 쿠키는 사용자의 컴퓨터에 저장되어 서버와 클라이언트 간의 상태를 유지하고 정보를 기억하는 데 사용됩니다.
- 세션: 서버 측에 저장되는 데이터로, 클라이언트와 서버 간의 상태를 유지하기 위해 사용됩니다. 세션은 일반적으로 서버에서 유지되며, 클라이언트는 세션 식별자를 쿠키로 받아서 사용합니다.
![[Pasted image 20240129111119.png]]
상태 유지 및 정보 전송:
- 쿠키 사용: 쿠키는 클라이언트 측에 저장되기 때문에, 클라이언트에서 서버로 정보를 전송할 수 있습니다. 이는 주로 사용자 기본 설정, 로그인 정보, 사용자 추적 등에 활용됩니다.
- 세션 사용: 세션은 서버 측에서 유지되므로 더 안전한 방식으로 상태를 유지할 수 있습니다. 주로 사용자의 인증 정보와 같은 민감한 데이터를 저장하는 데 사용됩니다.
![[Pasted image 20240129111247.png]]
이해를 돕기 위한 쉬운 그림 첨부
![[Pasted image 20240129111550.png]]
- 로그인 요청을 하면 db가 사용자 데이터와 일치하는지 확인한다.
- 사용자 정보와 요청된 정보가 일치하면 세션저장소에 세션을 하나 생성한다.
- 세션 저장소는 서버에게 Session Id를 발급한다.
- 서버는 session Id를 포함하고있는 쿠키를 클라이언트의 컴퓨터에 저장시킨다.
- 쿠키를 가진 사용자(로그인 성공한 사용자)가 서버에 데이터를 요청했을 경우에는 세션 저장소를 통해서 쿠키를 검증한다.
- 검증에 성공하면 세션 정보를 가져와서 요청한 데이터의 타입에 맞게 응답해준다.
쿠키와 세션의 차이점:
![[Pasted image 20240129115338.png]]