본문 바로가기
HTTP

HTTP 기본 개념- Stateful, Stateless, 비 연결성, 지속 연결

by 개미가되고싶은사람 2024. 3. 12.

HTTP 통신에서 서버, 클라이언트간 연결은 Stateful, Stateless방식을 사용한다.
서버, 클라이언트간에 연결을 유지하는것, 서버가 클라이언트의 상태를 저장하고 있는지에 따른 차이점이 있다

Stateful(상태유지): "서버"가 "클라이언트"의 상태를 기억 즉 상태 유지

Stateless(무상태): "클라이언트"가 애초에 접속할 때 "서버"에게 필요한 상태를 제공하는 것

 

Stateful, Stateless의 특징

Stateful에서 서버가 변경 된다면 원하는 데이터가 없어지므로 오류가 발생한다. 중간에 서버가 변경된다면 변경된 서버에 미리 데이터를 전송해야 된다.

반대로 Stateless(무상태)에서는 서버가 변경되어도 오류가 발생하지 않는다. 즉 무상태 프로토콜(Stateless)에서는 응답 서버를 쉽게 변경할 수 있다.

 

비 연결성(connectionless)

클라이언트랑 서버를 지속적을 연결을 하면 필요한 자원이 많이 들어간다. 하지만 클라이언트랑 서버가 요청, 응답할 때만 연결하면 서버 자원을 매우 효율적으로 사용할 수 있다. HTTP는 기본적으로 비 연결성 속성이 있다.

 

비 연결성의 단점

  • TCP/IP연결을 새로 맺어야 한다. 3way handshake 시간 추가
  • HTML, 자바스크립트, CSS, 추가 이미지 등등 수 많은 자원이 다운된다.

하지만 이 단점을 Persistent Connections(지속 연결)로 해결할 수 있다.

여러개의 요청, 응답의 서버, 클라이언트간 연결을 유지하면서 처리할 수 있다

 

출처: 인프런 - 모든 개발자를 위한 HTTP 웹 기본 지식 (김영한님 제작)