카테고리 없음

쿠키와 세션

reumiii 2024. 1. 19. 21:34

⭐ 쿠키와 세션은 왜 필요할까?

 

HTTP 프로토콜은 비연결성, 무상태성 특징을 가지고 있다.

- 비연결성(Connetionsless) : 클라이언트가 서버에 요청을 보내면

서버는 그에 대한 응답을 보낸 후 연결을 끊는다.

- 무상태성(Stateless) : 요청마다 연결을 유지하지 않고 끊기 때문에 상태정보도 유지되지 않는다.

 

이러한 특징의 장점은 연결을 계속 유지하지 않으므로 서버의 자원을 절약할 수 있다.

하지만 사용자의 요청마다 연결상태 정보를 유지하지 않기 때문에,

사용자를 식별할 수 없다.

즉, 같은 사용자의 요청이 여러번 들어와도 매번 새로운 사용자의 요청으로 인식하는 단점이 있는 것이다.

 

이 점을 보안하기 위해 쿠키와 세션을 사용하여

사용자의 상태정보를 유지하도록 한다. (ex. 로그인상태 유지)

 


 

⭐ 쿠키 (Cookie)

- Key-value로 구성되어 있고 String 형태이다.

- 사용자의 상태정보를 웹 브라우저에 저장하여

사용자가 요청할 때 이 정보를 같이 보내 서버가 사용자를 식별하도록 해준다.

- 클라이언트에 저장되어 만료시점에 삭제됨

 


 

⭐ 세션 (Session)

- session id는 브라우저 단위로 저장된다.

(각 사용자마다 고유한 session id가 발급됨)

- 비밀번호 같은 중요한 정보는 쿠키에 저장하지 않고

서버에서 session id로 조회한다.

- 서버에 저장되어 만료시점은 알 수 없다.