카테고리 없음
쿠키와 세션
reumiii
2024. 1. 19. 21:34
⭐ 쿠키와 세션은 왜 필요할까?
HTTP 프로토콜은 비연결성, 무상태성 특징을 가지고 있다.
- 비연결성(Connetionsless) : 클라이언트가 서버에 요청을 보내면
서버는 그에 대한 응답을 보낸 후 연결을 끊는다.
- 무상태성(Stateless) : 요청마다 연결을 유지하지 않고 끊기 때문에 상태정보도 유지되지 않는다.
이러한 특징의 장점은 연결을 계속 유지하지 않으므로 서버의 자원을 절약할 수 있다.
하지만 사용자의 요청마다 연결상태 정보를 유지하지 않기 때문에,
사용자를 식별할 수 없다.
즉, 같은 사용자의 요청이 여러번 들어와도 매번 새로운 사용자의 요청으로 인식하는 단점이 있는 것이다.
이 점을 보안하기 위해 쿠키와 세션을 사용하여
사용자의 상태정보를 유지하도록 한다. (ex. 로그인상태 유지)
⭐ 쿠키 (Cookie)
- Key-value로 구성되어 있고 String 형태이다.
- 사용자의 상태정보를 웹 브라우저에 저장하여
사용자가 요청할 때 이 정보를 같이 보내 서버가 사용자를 식별하도록 해준다.
- 클라이언트에 저장되어 만료시점에 삭제됨
⭐ 세션 (Session)
- session id는 브라우저 단위로 저장된다.
(각 사용자마다 고유한 session id가 발급됨)
- 비밀번호 같은 중요한 정보는 쿠키에 저장하지 않고
서버에서 session id로 조회한다.
- 서버에 저장되어 만료시점은 알 수 없다.