- 클라이언트 서버 구조
- Request, Response 구조
- 클라이언트는 서버에 요청을 보내고, 응답을 대기
- 서버가 요청에 대한 결과를 만들어서 응답
- 무상태 프로토콜(스테이스리스), 비연결성 HTTP 메시지
- 서버가 클라이언트의 상태를 보존X(Stateless)
- 사용자가 이전에 로그인을 했다는 사실을 서버에서 가지고 있지는 않음
- 로그인을 입증하기 위해서는 사용자가 서버로부터 받은 인증값(토큰 또는 세션)을 매번 request시마다 전달을 해야함
- 장점
- 서버 부하 감소
- 서버 확장성(스케일 아웃)
- 고객이 증가하면 서버증설이 가능한 이유는 기존의 서버에서 상태값을 보존하지 않기에, 새로운 서버를 한대 늘리더라도 문제가 되지 않는것.
- 다만, 세션을 서버메모리에 저장할 경우에는 문제가 생기므로 유의
- Stateful과 Stateless의 차이
- Stateful
- 연결성 지향
- TCP/IP통신
- 3Way handShake후 지속적 연결
- 웹소켓 등을 활용한 채팅과 같은 서비스에서는 지속적 연결 지향 필요
- 웹소켓은 http를 통해 맺은 연결지향 통신방식
- TCP소켓통신과 유사하지만 메시지 기반의 통신
- Stateless
- 비연결성 지향
- HTTP통신
- TCP위에서 동작하지만, 지속적 연결을 맺지 않고 끊어버림
- 대부분의 웹서비스는 비연결성 지향
- 빠른 응답속도와 동시에 많은수가 서버로 접속하더라도 비연결로 인해 서버 부하 감소