관리 메뉴

평행우주 : world 1

[ HTTP ] HTTP와 클라이언트 서버 아키텍처 본문

텃밭 3 : BE/HTTP | 네트워크

[ HTTP ] HTTP와 클라이언트 서버 아키텍처

parallelworlds 2022. 2. 23. 07:05

기본개념

 

2티어 아키텍처, 또는 클라이언트-서버 아키텍처

  • 리소스가 존재하는 곳(서버)과 리소스를 사용하는 앱(클라이언트)을 분리시킨 것
  • 언제나 요청이 선행되고 그 후에 응답이 온다

 

서버(server)

  • 영어 단어 그대로 제공(serve)하는 주체
  • 리소스 제공
  • 일반적으로 서버는 리소스를 전달해 주는 역할만 담당
  • 무엇을 하느냐에 따라 종류가 달라진다.
  • 파일 서버는 파일을 제공하는 앱
  • 웹 서버는 웹사이트에서 필요로 하는 정보들을 제공하는 앱
  • 메일 서버는 메일을 주고받을 수 있도록 도와주는 앱
  • 데이터베이스도 데이터 제공자로서 일하므로 일종의 서버라고 볼 수 있다.

 

클라이언트

  • 리소스를 사용하는 앱
  • 보통 플랫폼에 따라 구분
  • 브라우저를 통해 주로 이용하는 웹(Web) 플랫폼에서의 클라이언트는 웹사이트 또는 웹 앱이라고 부른다
  • iOS나 안드로이드와 같은 스마트폰/태블릿 플랫폼
  • 윈도우와 같은 데스크탑 플랫폼에서 이용하는 앱 역시 클라이언트가 될 수 있다

 

데이터베이스

  • 리소스를 저장하는 공간
  • 창고와 같은 역할
  • 2티어 아키텍처에 데이터베이스가 추가된 형태를 3티어 아키텍처라고 부른다

 

 


클라이언트-서버 통신

클라이언트와 서버 간의 통신은 요청과 응답으로 구성되며, 요청이 있어야만 응답이 온다.

 

프로토콜

  • 통신 규약, 약속
  • "다양한 방법" 존재
  • 각자의 프로토콜마다 반드시 지켜야 하는 규약이 존재
  • 웹 애플리케이션 아키텍처에서는 클라이언트와 서버가 HTTP라는 프로토콜 사용.
  • HTTP를 이용해 주고받는 메시지를 "HTTP 메시지"라고 한다

 

 

주요 프로토콜

 


API

 

  • API(Application Programming Interface)
  • 서버가 클라이언트에게 리소스를 잘 활용할 수 있도록 인터페이스(interface)를 제공한 것
  • API는 앱이 요청할 수 있고 프로그래밍 가능한 인터페이스
  • 서버가 API를 구축해놓아야 클라이언트가 이를 활용할 수 있다.

 

Comments