쿠키란?
쿠키는 서버에 요청할 때마다 사용자가 인증 절차를 통해 로그인을 해야하는 불편함이 있었다.
- 따라서 쿠키는 사용자가 한 번 로그인을 하면 쿠키를 생성하여 저장하고 이후 요청은 로그인 없이 진행할 수 있다. → 편리함
<aside>
💡 <Key, Value> 형태의 문자열로 브라우저에 저장되어 사용자를 인식하거나 일부 데이터를 저장할 때 사용합니다.
서버가 클라이언트에 정보를 전송할 때 저장하고자 하는 정보를 응답 헤더에 저장하여 전달합니다.
</aside>
문제점
- 쿠키 노출 시 인증요청에 해당하는 정보가 쉽게 노출된다.
- 웹 브라우저마다 Cookie에 대한 지원 형태가 다르기 때문에 브라우저 간 공유가 불가능하다.
- Cookie 사이즈가 4KB로 제한되어 있다 → 제한되기 때문에 많은 양의 데이터 저장이 불가능
쿠키 & 세션
<aside>
💡 Cookie는 보안이 좋지 않고, 세션은 서버에 부하가 오고, 속도가 느린 단점들을 상호 보완하기 위해 나온 방법 !
</aside>
- 사용자가 서버에 요청을 보낼 때 쿠키 정보를 같이 보낸다.
- 서버는 전달한 쿠키에 Session ID 가 있는지 확인한다.
- Session ID가 존재한다면 상태 유지, 없다면 새로 세션 저장소에 저장한다.
- 사용자에게 요청에 대한 응답을 보낼 때 쿠키에 Session ID 정보를 같이 넣어서 보낸다.