서버는 1대이고 클라이언트가 100개라고 가정을 해보자.
서버에는 한정적인 자원이 있는데 클라이언트 모두 서버에 연결 되어 있다고 하면 서버의 속도는 느려질것이다.
클라이언트에서 한번에 같은 시간에 검색 버튼을 누르지 않기 때문에 연결을 계속 유지할 필요는 없다.
- 아이유 콘서트 예매나 선착순 이벤트등 이런 상황은 예외적으로 생각하자.
한번에 같은 시간에 누르는 경우는 특수한 상황 말고는 딱히 없으니 서버에서는 클라이언트가 필요한 자원을 모두 가져가면 TCP 연결을
끊어 버린다.
이로 인해 TCP/IP 연결을 위한 3-way Handshaking 를 자주 해야겠지만 서버에서는 최소한의 자원을 유지 하면서 과부하가 걸리지
않을수 있다.
이런 시간을 줄이기 위해서 HTTP 지속 연결 (Persistent Connections)로 문제를 해결했다.
HTTP/2, HTTP/3에서는 더 많은 최적화가 되었다.
HTTP는 기본적으로 연결을 유지하지 않는 모델이다.
아이유 콘서트 예매나 선착순 이벤트등 이런 상황은 어떤 경우에도 머리를 쥐어 짜 Stateless (무 상태) 개발에 사력을 쏟아야 한다.
'HTTP' 카테고리의 다른 글
| HTTP 메서드 - PUT, PATCH, DELETE (1) | 2024.09.30 |
|---|---|
| HTTP 메서드 - GET, POST (0) | 2024.09.30 |
| HTTP 메시지 (1) | 2024.09.28 |
| Stateful (상태 유지) - Stateless(무 상태) (2) | 2024.09.27 |