쿠키와 세션 왜 쓰는가?
- HTTP는 비상태성(Stateless), 비연결성(Connectionless)의 특징을 갖는다.
- 매 연결마다 TCP연결을 끊었다가 다시 연결하며, 연결이 끊어진 후에도 사용자를 개인화하여 각자의 상태를 따로 저장하지 않는다.
- 이러한 특징으로 인해 HTTP는 연결과 상태정보 유지를 않아 서버의 자원을 아낄 수 있다는 장점이 있다. 다만, 서버는 사용자를 식별할 수 없기 때문에 매번 사용자의 상태를 확인해야하는 단점이 있다.
⇒ 이를 해결하기 위해 쿠키와 세션을 활용할 수 있다!
<aside>
💡 [비상태성, 비연결성]
쿠키 🍪
cookie란?
- 서버가 client에 저장시키는 데이터 파일
- 동일한 서버에 접속할 때마다 브라우저가 requestHeader에 쿠키를 넣어 요청 전송
cookie 동작 방식
- [클라이언트] 서버에 요청(접속)을 보낸다.
- [서버] 응답할 때, 클라이언트 측에 저장하고 싶은 정보를 응답 헤더의 Set-Cookie에 담아서 응답한다.
- [클라이언트] 응답으로 받은 쿠키를 브라우져에 저장한다.
….
- [클라이언트] 이후 해당 서버에 재요청/재접속 할때마다 요청헤더에 쿠키를 담아 보낸다.
- [서버] 요청헤더의 쿠키를 바탕으로 클라이언트를 식별하고 맞춤형 서비스를 제공한다.
세션
session이란?
- 서버에 저장하는 사용자 정보 파일
- 사용자를 식별해 세션을 사용하기 위한 것이 세션ID