Stateful
서버가 클라이언트의 상태를 보존한다.
즉, 서버가 쿠키나 세션을 통해서 클라이언트의 인증이 종료될 때 까지, 클라이언트의 정보를 저장한다.
예시를 들어보자면
클라이언트: 사과 2개 배달해 주세요
점원1: 주소는 어떻게 되세요?
클라이언트: 서울시 성북구 XXXX입니다.
점원1: 결제는 어떻게 해드릴 까요? ( 사과 2개를 산다는 것을 알고있다)
클라이언트: 카드로 하겠습니다.
점원1: 감사합니다 ( 사과 2개를 어떤 주소로 배달하는지 알고있다)
장점:
이것이 stateful로서 클라이언트의 정보를 저장하고 있음으로 통신이 갑자기 중단되어도 이어서 다시 시작 할 수있다.
하지만 위 예에서 중간이 점원이 바뀐다면
클라이언트: 사과 2개 배달해 주세요
점원1: 주소는 어떻게 되세요?
클라이언트: 서울시 성북구 XXXX입니다.
점원2: 뭘 산다는 거지? ( 사과 2개를 산다는 것을 모른다)
클라이언트: 카드로 하겠습니다.
점원3: 뭘 카드로 산다는 거지? ( 사과 2개를 어떤 주소로 배달하는지 모른다)
단점:
위과 같이 stateless는 서버를 확장하거나, 멈추거나 등의 이유로 다른 서버를 사용해야할때 문제가 발생한다.
tcp-3way handshake 또는 로그인 유지 같은 기능을 구현할때 stateful을 이용한다.
Stateless
서버가 클라이언트의 상태를 보존하지 않는것을 말한다.
예시로
클라이언트: 사과 2개 배달해 주세요
점원1: 주소는 어떻게 되세요?
클라이언트: 서울시 성북구 XXXX입니다.
점원1: 뭘 산다는 거지? ( 사과 2개를 산다는 것을 모른다)
클라이언트: 카드로 하겠습니다.
점원1: 뭘 카드로 산다는 거지? ( 사과 2개를 어떤 주소로 배달하는지 모른다)
서버가 클라이언트의 상태를 보존하지 않음으로 같은 서버일 지라도 위와 같은 대화는 문제가 발생한다.
따라서
서버가 같든 다르든 모든 정보를 포함하여 요청을 보내야 한다.
클라이언트: 사과 2개 배달해 주세요
점원1: 주소는 어떻게 되세요?
클라이언트: 사과2개에 주소는 서울시 성북구 XXXX입니다.
점원1: 결제는 어떻게 해드릴 까요?
클라이언트: 사과2개에 주소는 서울시 성북구 XXXX이고 카드로 결제하겠습니다..
점원2: 감사합니다
장점
- 모든 정보를 요청에 보내므로 중간에 아무 서버나 호출 할 수 있다.
- 트랙픽이 갑자기 증가하거나 해도 서버 확장에 유리하다.
단점
- 요청에 많은 데이터가 소모된다.
- 흔히 사용하는 session과 cookie를 이용하여 로그인 유지를 할 수 없다.
https://wooono.tistory.com/366
https://inpa.tistory.com/entry/WEB-%F0%9F%93%9A-Stateful-Stateless-%EC%A0%95%EB%A6%AC
https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC
'computer science > network' 카테고리의 다른 글
HTTP Method (0) | 2023.10.22 |
---|---|
HTTP 메시지 (0) | 2023.10.20 |
HTTP의 특징 (0) | 2023.10.20 |
URI, URL, URN (0) | 2023.10.19 |
IP, TCP (0) | 2023.10.19 |