HTTP는 인터넷 상에서 불특정 다수의 통신 환경을 기반으로 설계되었다. 만약 서버에서 다수의 클라이언트와 상태나 연결을 계속 유지해야 한다면 이에 따른 많은 서버의 리소스가 필요하다.
1.클라이언트와 서버구조

-기존에는 클라이언트와 서버가 구분이 되어있지않았다.
-클라이언트는 UI에 중점을 두고 서버에서 데이터,비지니스 로직을 담당하도록 했다.
-결과 적으로 클라이언트와 서버가 독립적으로 발전 할 수 있게 되었다.
2.무상태
서버는 클라이언트의 상태를 보존하지 않는다.
ex)강의를 신청하는 수강생이 상담한 직원이 아닌 다른 직원이 와도 결제할 수 있다.
Scale Out 수평 확장성이 높고 갑작스런 요청량 증가해도 서버를 증설하기 쉽다.
클라이언트가 데이터를 추가적으로 전송해야한다.
무상태로 설계할 수 없는 경우가있다.
로그인은 Cookie,Session,Token등을 활용한다.
3.비연결
HTTP는 연결을 유지하지 않는 모델이다.
서버자원을 효율적으로 사용할 수 있다.
요청이 추가로 들어오면 연결을 (3 way handshake)새로해야함으로 요청에 대한 응답시간이 증가한다.
웹사이트의 HTML,CSS,JS,이미지 등의 정적 자원을 모두 다시 다운로드 한다.
->캐시, 브러우저 캐싱으로 해결
현재는 HTTP 지속연결(Persistent Connections)로 문제를 해결한다.