<aside>
💡 쿠키란?
무상태와 비연결성이라는 http 통신의 특징에도 불구하고 서버가 클라이언트 인증 상태를 기억하는
것처럼 구현할 수 있는 수단으로 사용할 수 있다.
서버에서 응답 시 header 안에 set-cookie 속성으로 쿠키 정보를 담아주면 응답을 받은 브라우저는 쿠키를 브라우저에 자동 저장.
서버에 http 요청 할 때마다 쿠키는 자동으로 서버에 보내진다.
쿠키는 동일한 Origin 혹은 Cors를 허용하는 Origin에만 쿠키를 보낸다.
Origin?
출처(origin) = protocol + host + port
CORS란?
Cross Origin Resource Sharing
다른 Origin에 리소스 요청을 허용하는 정책
브라우저는 기본적으로 보안상의 이유로 Same Origin Policy (SOP)를 원칙으로 하지만
서버와 클라이언트가 CORS 설정을 통해 상호합의된 웹사이트는 예외적으로 서로 다른 Origin 임에도
API 요청이 가능하다.
</aside>
<aside>
💡 세션?
사용자와 서버간 연결이 활성화된 상태. 혹은 인증이 유지되고 있는 상태
로그인 성공 → 서버에 세션 생성 및 저장 (key:value) → key를 브라우저에 응답 (쿠키)
</aside>
로그인/회원가입 시 세션 인증
로그인/회원가입 성공 시 서버에서 쿠키에 sessionId를 담아서 보내줍니다.
세션 유지 상태 : 서버에서 관리하는 세션 저장소에 회원 데이터가 있다.
세션 만료 상태 : 서버에서 관리하는 세션 저장소에 회원 데이터가 없다.
인가(Authorization) 필요한 API 요청/응답
서버는 인가가 필요한 API 요청을 받으면 클라이언트 쿠키에 들어 있는 sessionId를 세션 저장소에 조회하여 있으면 DB에 데이터를 조회하여 응답합니다.