HTTP 통신에서 서버, 클라이언트간 연결은 Stateful, Stateless방식을 사용한다.
서버, 클라이언트간에 연결을 유지하는것, 서버가 클라이언트의 상태를 저장하고 있는지에 따른 차이점이 있다
Stateful(상태유지): "서버"가 "클라이언트"의 상태를 기억 즉 상태 유지
Stateless(무상태): "클라이언트"가 애초에 접속할 때 "서버"에게 필요한 상태를 제공하는 것
Stateful, Stateless의 특징
Stateful에서 서버가 변경 된다면 원하는 데이터가 없어지므로 오류가 발생한다. 중간에 서버가 변경된다면 변경된 서버에 미리 데이터를 전송해야 된다.
반대로 Stateless(무상태)에서는 서버가 변경되어도 오류가 발생하지 않는다. 즉 무상태 프로토콜(Stateless)에서는 응답 서버를 쉽게 변경할 수 있다.
비 연결성(connectionless)
클라이언트랑 서버를 지속적을 연결을 하면 필요한 자원이 많이 들어간다. 하지만 클라이언트랑 서버가 요청, 응답할 때만 연결하면 서버 자원을 매우 효율적으로 사용할 수 있다. HTTP는 기본적으로 비 연결성 속성이 있다.
비 연결성의 단점
- TCP/IP연결을 새로 맺어야 한다. 3way handshake 시간 추가
- HTML, 자바스크립트, CSS, 추가 이미지 등등 수 많은 자원이 다운된다.
하지만 이 단점을 Persistent Connections(지속 연결)로 해결할 수 있다.
여러개의 요청, 응답의 서버, 클라이언트간 연결을 유지하면서 처리할 수 있다
출처: 인프런 - 모든 개발자를 위한 HTTP 웹 기본 지식 (김영한님 제작)
'HTTP' 카테고리의 다른 글
[HTTP] HTTP Header - 개념, 표현 헤더, 협상 (0) | 2024.03.13 |
---|---|
[HTTP] 상태 코드 - 상태 코드는 왜 필요할까? 및 종류 (0) | 2024.03.12 |
[HTTP] 웹 브라우저 요청 흐름 (0) | 2024.03.12 |
[HTTP] 인터넷과 네트워크 기본 개념(IP, TCP/UDP, PORT, DNS) (0) | 2024.03.12 |
HTTP 메서드의 속성 (0) | 2024.03.12 |