HTTP의 특징
클라이언트 서버 구조

- requset respose 구조
- 클라는 서버에 요청 후 응답 대기
- 서버가 요청에 대한 결과 만들어 응답
무상태 프로토콜 - stateless
- 서버가 클라이언트 상태 보존 X
- 장점: 서버 확장성 높음(스케일 아웃)
- 단점: 클라가 추가 데이터를 전송해야함
상태유지 | 무상태 |
---|
서버가 상태 기억 | 서버가 상태기억할 필요 x |
무상태에서는 갑자기 클라이언트의 요청이 증가해도 서버를 대거 투입할 수 있다. 또한 응답서버를 쉽게 바꿀 수 있어서 무한한 서버 증설이 가능하다.
무상태의 한계는 다음과 같다.
- 모든 것을 항상 무상태로 설계할 수 있는 것은 아니다.
- 단순한 서비스 소개 화면(무상태 가능)
- 로그인(상태유지)
비연결성
실제로 요청을 주고받을 때에만 연결을 유지하고 이후엔 TCP/IP 연결을 끊는다.
=> 최소한의 자원으로 서버를 유지할 수 있게 한다.
비연결성의 한계는 다음과 같다.
- TCP/IP 연결을 새로 맺어야 함
- 웹 브라우저로 사이트를 요청하면 수 많은 자원들이 함께 다운로드 되는데, 이때마다 연결을 끊고 다시 맺는 것은 비효율적이라 현재는 HTTP 지속 연결로 문제를 해결한다.