Stateful (상태 유지)
- 서버에서 클라이언트의 상태를 계속 저장해야 한다.
- 항상 같은 서버가 유지되어야 한다. (저장되어 있기 때문에)
- 서버가 변경 시 문제 발생
Stateless (무상태)
- 서버에서 상태를 저장하지 않는다. 항상 모든 정보를 담아서 서버에 전송한다.
- 클라이언트의 요청이 증가해도 서버를 투입해서 해결이 가능하다. Scale out (수평 확장에 유리)
- 서버 변경 시에 아무런 문제가 없음
상황에 따라 상태 유지와 무상태를 구분해서 사용한다. 따라서 상태 유지는 최소한으로 사용하는것이 좋다. 상태유지는 로그인을 유지하기 위해 사용하긴 하지만, 일반적으로 브라우저 쿠키와 서버 세션을 사용해서 상태를 유지한다.
비 연결성 (connectionless)
장점
- HTTP는 기본이 연결을 유지하지 않는다.
- 일반적으로 초 단위로 응답속도가 빠르다.
- 자원을 효율적으로 사용 가능
단점
- TCP/IP 매번 새로 연결해야 함 ( 3 way - handshake )
- 매번 많은 자원을 다운받아야 함.
단점을 해결하기 위해 HTTP 지속연결 (Persistent Connections)로 문제 해결했다. (메커니즘에 따라 ~~ 일정시간 유지)
'IT 정보 > Network' 카테고리의 다른 글
[네트워크] SPA(Single Page Application) : AJAX (8) | 2022.06.05 |
---|---|
[Network] HTTP Messages (10) | 2022.06.05 |
[Network] TCP/IP & UDP (2) | 2022.06.05 |
[Network] URL / URI (4) | 2022.06.05 |
[Network] 프로토콜과 API (7) | 2022.06.05 |