카테고리 없음
HTTP 무상태성 (stateless) - 상태성 (stateful)
시간의 효율화
2022. 1. 24. 17:58
서버 - 클라이언트
Stateful (상태성) - 서버가 클라이언트의 이전 요청을 기억하고 있음.
- 예: FTP - 로그인 한 사용자는 서버가 계속 기억을 하고 있음.
장점:
- 요청이 간결함.
- 서버가 클라이언트의 요청 내역을 기억함.
단점:
- 늘어난 요청을 처리하기 위해 서버를 늘리면, 늘린 서버에서 어떤 클라이언트의 요청이든 기억하고 처리할 수 있어야 하기 때문에, 서버 간 애플리케이션 상태가 동기화 되어야 함. 즉, 어떤 서버라도 동일한 애플리케이션 상태를 사용할 수 있도록 되어야 함. 이럴 경우, 서버가 100대라고 하면 오버헤드가 발생함. 즉 확장성이 낮음.
Stateless (무상태성) - 이전 요청과 현재 요청이 관계가 없음. 매 요청이 새로움.
- 예: HTTP - 서버는 이전 요청을 기억하고 있지 않음.
장점:
- 매 요청마다 필요한 모든 정보를 포함하고 있음. 즉, 클라이언트가 자신의 상태를 기억하고 모든 요청을 "자기 기술적 메시지"로 전송함.
- 서버는 이전 요청을 기억할 필요가 없기 때문에, 현재 요청만 처리하면 되고, 이로 인해서 서버 시스템이 단순해짐.
- 단순해진 서버 시스템으로 인해서 서버 확장하기 용이해짐.
단점:
- 퍼포먼스 저하
- 한번 요청시 Stateful보다 송신할 데이터의 양이 많음 -> 대역폭 낭비 확률 증가.
- 인증이 필요한 경우 서버에 부하가 걸림. 특히 데이터 베이스에 접근해야 하는 경우.
- 송수신 중 문제가 생겨 확인을 하기 위해 클라이언트가 재요청을 할 경우, 서버에서는 요청을 두번 한 것으로 인식할 수 있음.
HTTP가 고안 된 이유:
- WWW 창시자 '팀 버너스 리 박사'가 WWW를 개발 당시 File Transfer Protocol이 이미 있었음. 그러나 FTP는 "통신 절차가 많아서 오버헤드가 큼" (페이지 102, "프로가 되기 위한 웹 기술 입문.")
(오버헤드: "특정 task를 수행하는데 과도한 자원이 사용되는 것" | 출처: https://en.wikipedia.org/wiki/Overhead\_(computing))
- 인증이 필요하지 않은 웹페이지는 HTTP가 편리함. 그러나 로그인 같은 인증이 필요한 기능, 그리고 인증에 따른 리소스를 제공해야 할 때는 문제가 생긴다. 매번 리소스를 요청할 때 마다 로그인 정보를 Http Body에 담아 보내야 한다.
- 이런 비효율적인 문제를 해결하기 위해 등장한 기술이 바로 "쿠키"이다.
다음에 계속...
출처:
http://www.yes24.com/Product/Goods/5170353
웹 개발자를 위한 웹을 지탱하는 기술 - YES24
잘 설계된 웹 서비스의 구체적인 설계 프로세스와 사고방법을 알려준다!규모의 대소에 상관없이 웹 기술을 사용한 개발 경험이 있는 사람들을 대상 독자로 하고 있으며, 웹 서비스를 어떤 방법
www.yes24.com
http://www.yes24.com/Product/Goods/6721651
프로가 되기 위한 웹 기술 입문 - YES24
각종 웹 기술의 핵심을 관통하는 명쾌한 안내서!오늘날 우리의 삶을 지탱하는 웹 기술은 날로 발전을 거듭하고 있지만, 정작 웹이 어떻게 탄생했고 어떤 궤적을 그려왔으며, 실제로 내부적으로
www.yes24.com