클라이언트 서버 아키텍처를 이해하기 위해 작은 예를 들어 보겠습니다.
오늘 우리 도시의 날씨 데이터를 가져와야 한다고 가정해 보겠습니다.
이렇게 하려면 우리 도시의 기상 조건을 아는 사람에게 물어봐야 합니다.
컴퓨터를 아직 사용할 수 없다고 가정하면 일반적으로 그날의 신문을 보거나 라디오를 들을 수 있습니다.
이 과정에는 두 명의 다른 참가자가 있습니다.
첫 번째는 날씨에 대한 정보를 원하는 당신입니다.
두 번째는 정보를 제공하는 라디오 또는 신문입니다.
이 두 참가자의 이름을 지정하면
- 특정 정보를 소비하고자 하는 소비자. 또한 클라이언트-서버 컨텍스트에서 클라이언트라고 합니다.
- 정보를 제공하는 제공자. 또한 클라이언트-서버 컨텍스트에서 서버라고 합니다.
컴퓨터 시대에 클라이언트와 서버는 먼 거리상 분리되어 있지만 웹 (인터넷)으로 연결된 두 대의 컴퓨터입니다.
그러나 여기서 주목해야 할 중요한 점은 클라이언트와 서버가 수 km 떨어져 있을 필요가 없다는 것입니다.
클라이언트와 서버 프로그램이 동일한 컴퓨터에서 두 개의 프로세스로 실행 중일 수 있습니다.
클라이언트-서버 아키텍처를 이해하기 위해 클라이언트와 서버가 서로 다른 지역에 분리되어 있고 웹을 통해 연결되어 있다고 가정합니다.
작은 다이어그램을 사용하여 이를 시각화해 보겠습니다.
클라이언트와 서버 간의 HTTP 프로토콜
위의 예를 더 논의하면서, 우리는 날씨 업데이트를 받기 위해 신문을 읽거나 라디오를 들었습니다.
신문과 라디오는 현지 언어를 사용하며 신문에 쓰인 내용이나 라디오에서 말하는 내용을 이해할 수 있습니다.
그러나 웹상의 클라이언트와 서버에 대해 우리는 두 가지를 생각해 내야 합니다.
- 통신 매체, 특히 두 시스템이 상호 작용하는 프로토콜입니다. HTTP 통신 프로토콜이라고도 함
- 서버에서 필요한 세부 정보를 요청하는 프로토콜입니다. 이것은 형식화된 데이터의 모든 형태 일 수 있습니다. 가장 일반적으로 사용되는 형식은 XML 및 JSON입니다.
- 서버는 형식이 지정된 데이터의 모든 형태로 응답을 전송하여 응답합니다. 여기서는 XML 또는 JSON 일 수도 있습니다.
요약하자면 : 클라이언트와 서버는 HTTP 프로토콜을 사용하여 연결을 설정합니다. 연결이 설정되면 클라이언트는 두 엔티티 (클라이언트 및 서버)가 이해하는 XML 또는 JSON 형식으로 서버에 요청을 보냅니다. 요청을 이해한 후 서버는 응답을 다시 전송하여 적절한 데이터로 응답합니다.
이 논의를 더 이해하기 위해 앞서 이야기했던 날씨 세부 정보의 예를 자세히 설명하겠습니다. 장소의 날씨 세부 정보를 알고 싶다면 서버가 해당 장소의 날씨 세부 정보를 알려주도록 장소 이름을 알려야 합니다.
날씨 정보를 요청(Request)할 때 장소 이름(place name)을 지정합니다.
차례로 서버(Sever)는 응답(Response)을 다시 보냅니다 . 이 응답에는 도시의 실제 온도가 포함됩니다.
다음은 이 프로세스를 설명하기 위한 단계별 다이어그램입니다.
여기에 언급된 요청 및 응답은 HTTP 요청 및 HTTP 응답입니다.
'API Test' 카테고리의 다른 글
Rest Architectural Elements 무엇인가요? (0) | 2020.09.06 |
---|---|
REST 란 무엇입니까? (0) | 2020.09.05 |
HTTP 응답(HTTP Response)이란 무엇입니까? (0) | 2020.09.04 |
HTTP 요청(HTTP Request)이란 무엇입니까? (0) | 2020.09.03 |