본문 바로가기

네트워크/기초

[HTTP/네트워크] 클라이언트 - 서버

클라이언트-서버 아키텍처

2티어 아키텍처 (클라이언트-서버 아키텍처)

상품 정보같은 리소스가 존재하는 곳과, 리소스를 사용하는 앱을 분리시킨 것

  • 클라이언트: 리소스를 사용하는 앱으로 리소스를 요청할 수 있습니다.
  • 서버: 클라이언트의 요청에 따라 리소스를 제공(serve)하는 곳(응답)
  • 상품 정보는 서버에서 다루고, 클라이언트는 상품 정보를 조회합니다.

3티어 아키텍처

기존 2티어 아키텍처에 데이터베이스(리소스를 저장하는 공간)가 추가된 형태를 3티어 아키텍처라고 부릅니다.

  • 일반적으로 서버는 리소스를 전달해주는 역할만 담당합니다.
  • 데이터베이스는 창고와 같은 역할을 합니다.

클라이언트는 서버로 요청을 보내고, 서버는 요청에 따라 적절한 응답을 클라이언트로 회신합니다.

레스토랑에서 종업원(server)에게 음식을 주문하고, 서버가 요청에 따라 적절한 음식을 손님에게 전달하는 것과 같다고 생각하면 됩니다.

필요에 따라 서버는 데이터베이스에 요청을 보내고, 회신 받은 응답을 활용합니다.

 

클라이언트와 서버의 종류

클라이언트: 플랫폼에 따른 구분

  • 웹(web) 플랫폼: 브라우저를 통해 주로 이용하는 웹에서의 클라이언트는 웹사이트 또는 웹 앱
  • 스마트폰/태블릿 플랫폼: iOS나 안드로이드와 같은 스마트폰/태블릿에서의 클라이언트는 앱
  • 데스크탑 플랫폼: 윈도우와 같은 데스크탑에서의 클라이언트는 앱

서버: 무엇을 하느냐에 따른 구분

  • 파일 서버: 파일을 제공하는 앱
  • 웹 서버: 웹 사이트에서 필요로 하는 정보들을 제공하는 앱
  • 메일 서버: 메일을 주고받을 수 있도록 도와주는 앱
  • 데이터베이스: 데이터 제공자로서 작동하므로 일종의 서버라 볼 수 있습니다

HTTP를 이용한 클라이언트-서버 통신

프로토콜 (통신 약속)

프로토콜은 통신 규약, 즉 약속이라고 할 수 있습니다.

손님이 주문을 하기 위해서는 꼭 지켜야 하는 약속이 존재합니다. (커피 전문점에서 설렁탕을 주문할 수 없듯이..)

 

통신을 하기 위한 다양한 방법이 존재할 수 있습니다.

직원에게 직접 주문, 앱에서 주문, 키오스크 주문 처럼 이러한 주문 방법 하나하나를 전부 프로토콜이라고 할 수 있습니다.

 

프로토콜은 각각의 프로토콜 마다 지켜야 하는 규약이 존재합니다.

MDN에서의 "HTTP 메시지"라는 항목을 잘 살펴보면, HTTP만의 규칙이 있음을 발견할 수 있습니다.

 

웹 애플리케이션 프로토콜: HTTP

웹 애플리케이션 아키텍처에서는 클라이언트와 서버가 서로 HTTP라는 프로토콜을 이용해 소통합니다.

HTTP를 이용해 주고받는 메시지는 "HTTP 메시지"라고 부릅니다.


주요 프로토콜 (OSI 7 Layers)

 

7. 응용 계층
- HTTP : 웹에서 HTML, JSON 등의 정보를 주고받는 프로토콜
- HTTPS : HTTP에서 보안이 강화된 프로토콜
- FTP : 파일 전송 프로토콜
- SMTP : 메일을 전송하기 위한 프로토콜
- SSH : CLI 환경의 원격 컴퓨터에 접속하기 위한 프로토콜
- RDP : Windows 계열의 원격 컴퓨터에 접속하기 위한 프로토콜
- WebSocket : 실시간 통신, Push 등을 지원하는 프로토콜


4. 전송 계층
- TCP : HTTP, FTP 통신 등의 근간이 되는 인터넷 프로토콜
- UDP : 양방향의 TCP와 달리 단방향으로 작동하여 단순하고 빠르지만 신뢰성이 낮은 인터넷 프로토콜


 

반응형

'네트워크 > 기초' 카테고리의 다른 글

Cookie  (0) 2021.09.11
Hashing  (0) 2021.09.10
HTTPS  (0) 2021.09.10
URL & URI  (0) 2021.08.20
API  (0) 2021.08.03