서버 - 클라이언트 구조란?
웹 서비스를 서버와 클라이언트로 분리시킨 설계방식. 2티어 아키텍처 혹은 클라이언트-서버 아키텍처라고 함
클라이언트
클라이언트는 브라우저 상에서 동작하는 페이지나 기기에 설치하여 사용하는 애플리케이션 등을 의미하고, 사용자와 직접 상호작용합니다.
서버
서버는 사용자가 클라이언트를 통해 보낸 요청을 처리하고 올바른 데이터를 반환하는 역할을 함
서버 - 클라이언트 구조의 특징
- 확장성(Scalability)
- 서버가 클라이언트와 독립적이기 때문에 서버의 확장 혹은 트래픽 분산에 유연하게 대처가 가능
- 멀티플랫폼 지원
- 서버는 브라우저, 모바일 앱 등의 다양한 클라이언트나 플랫폼에 대해 동일한 서비스 제공 가능
- 업데이트 및 유지보수 편리
- 클라이언트를 업데이트할 필요 없이 서버의 로직을 변경이 가능
HTTP(HyperText Transfer Protocol)란?
웹에서 클라이언트와 서버 간 데이터 송수신을 위한 프로토콜.
TCP/IP 프로토콜을 기반으로 동작하기 때문에 클라이언트는 서버의 IP 주소와 포트 번호를 사용하여 통신함.
HTTP의 특징
- 무상태(Stateless)
- 서버는 이전에 클라이언트가 보낸 요청을 기억하지 않음
- 필요에 따라 쿠키, 세션, 캐시와 같은 방법으로 이전 요청에 대한 데이터를 따로 관리함
- 비연결(Connectionless)
- 클라이언트가 서버로 요청을 보내고 응답을 받으면 그 즉시 서버와 클라이언트의 연결은 종료된다.
- TCP/IP 프로토콜을 사용하는데 비연결성?
- 필요한 리소스를 요청받았을때 해당 리소스에 대한 반환이 끝나고 TCP연결을 끊는다
- 이 과정에서 TCP의 작동 방식인 3way-handshake는 일어난다.
- 기존에는 비지속연결 방식으로 각 요청 1개에 대해서 매번 3way-handshake를 했었으나, 최근 HTTP 버전에서는 지속연결 방식으로 필요한 리소스를 한꺼번에 요청하고 한꺼번에 반환 받은 후 연결을 닫는 방식을 사용한다
- 클라이언트 - 서버 구조
- 클라이언트와 서버가 분리되어 있어서 클라이언트 - 서버 구조가 가지는 장점을 가진다.
'BackEnd' 카테고리의 다른 글
API의 구현과 API 명세서-1 (2) | 2025.03.21 |
---|---|
HTTP 요청의 구조와 통신 과정 / HTTP 메서드 (0) | 2025.03.21 |
HTTP 헤더2 - 캐시와 조건부 요청 (0) | 2025.03.19 |
HTTP 헤더1 - 일반 헤더 (2) | 2025.03.18 |
HTTP 상태코드 (0) | 2025.03.06 |