[TIL] [HTTP/네트워크] 기초

송현우·2022년 10월 5일
0

오늘의 공부

서버는 영어로 server, serve(제공) 하는 역할을 한다. 클라이언트가 웹에서 데이터를 받기 위해 어떤 과정을 거치는지 알아보고자 한다.


클라이언트 서버 아키텍쳐

클라이언트, 사용자가 네트워크 기반 서비스를 이용할 때 연결된 서버가 없다면 어떻게 되는가? 아마 제공자가 보여주고자 하는 데이터를 전달받지 못할 것이다.

클라이언트 서비스를 사용하기 위해선 어떠한 요청(Request)을 서버에 보내게 된다. 서버는 그 요청에 응답(response)을 하면서 리소스를 전달한다. 이렇게 서버가 리소스를 가지고 직접 클라이언트에 제공하는 것을 2tier architecture라고 한다.
일반적으로 서버는 리소스를 전달하는 역할만 하며, 리소스를 저장하는 데이터베이스를 별도로 한다. 이를 3tier architecture라고 한다.
보통 클라이언트는 웹, 스마트폰 등 플랫폼에 따라 구분된다. 서버 역시 웹, 메일, 데이터베이스 등 역할에 따라 종류가 달라진다.

네트워크에서 클라이언트가 서버에 요청을 한다는 것을 알았다. 하지만 요청을 마음대로 해선 안된다. 정해진 규약에 맞춰 요청해야 한다. 이것을 프로토콜 이라고 한다.

웹 애플리케이션 아키텍쳐에서 클라이언트와 서버는 HTTP라는 프로토콜을 사용한다. HTTP를 이용해 주고 받는 메세지를 "HTTP 메시지" 한다. HTTP라는 프로토콜이라고 했듯, 프로토콜은 여러가지가 존재할 수 있다.

프로토콜은 규약이기에 정해진 양식이 있다. 들어가야 할 내용이 명확하지 않으면 응답하지 않는다.


API

만약, 클라이언트가 서버의 구성을 모른다면 어떤 양식에 맞춰 요청을 보내야 할까. 서버의 구성을 모르면 어떤 리소스를 가지고 있는지 파악할 수 없을 것이다.

이 때문에 서버는 API(Application Programming Interface)를 제공해야 한다. 인터페이스는 서로 다른 장치에서 신호를 주고 받을 때의 접점이다. 즉, 클라이언트가 서버에 요청 신호를 보내고 응답을 받을 때의 접점이라 할 수 있다.

웹에서 인터넷에 있는 데이터를 요청할 때 위에서 언급한 HTTP 프로토콜을 사용하며, 주소를 통해 접근할 수 있다. HTTP에는 CRUD와 매칭되는 HTTP 메소드가 이미 존재한다.

0개의 댓글