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