( Daliy / 3.17 TIL) Interaction With Server

Seung Ho Yoon·2021년 3월 20일

I studied this today

  • 클라이언트, 서버, API
  • 클라이언트-서버 아키텍처
  • HTTP

클라이언트(client)

클라이언트는 인터넷에 연결된 사용자의 디바이스, 또는 웹에 접근할 수 있는 소프트웨어를 뜻한다.

  • 리소스를 사용하는 곳 (client 손님) 리소스를 가지고있는 점원에게 물품을 요청해야함, 리소스를 담아 응답, 플랫폼에 따라 구별된다. 브라우저를 통해 주로 이용하는 웹에서는 웹사이트 또는 웹앱, ios나 안드로이드와 같은 스마트폰/태블릿 플랫폼이 있다.

  • 대표적인 예로 브라우저가 있는데, 브라우저는 HTML, CSS, JavaScript 등으로 작성된 코드를 내부 엔진으로 해독하여 사용자가 쉽게 이해할 수 있는 형태의 컨텐츠로 보여주는 역할을 한다.

서버(server)

리소스가 존재하는곳(정보를 제공하는 주체), 클라이언트가 요청하면 응답을 주는 곳이다.

  • 클라이언트가 리소스를 요청하면 해당하는 리소스를 응답을 해줘 클라이언트가 리소스를 실행할 수 있도록 해준다.

API

(Application Programming Interface) 정확한 요청을 할수 있도록 돕는 메뉴판 같은 역할이며, 인터페이스를 제공한다.

  • 서버는 클라이언트가 어떤 자원을 요청하면 해당 요청을 적절하게 처리하는 역할을 한다. 클라이언트는 서버의 자원을 어떻게 사용할 수 있는지 명시해 둔 인터페이스 API에 따라 요청을 전송한다.

  • fetch, XMLHttpRequest, jQuery ajax 메소드가 있다.

서버 아키텍처

리소스를 사용하는 앱과 리소스를 존재하는곳을 분리 시킨것을 2티어 아키텍처 클라이언트-서버 아키텍처라고 한다.

  • 클라이언트-서버 아키텍처에서는 요청이 선행되고, 그 후에 응답이 옵니다. 요청하지도 않았는데, 응답이 오는 경우는 없다.

  • 서버는 리소스를 전달해주는 역할만 할뿐 리소스를 저장하는곳을 따로두는것이 보통이다, 리소스를 저장하는 공간을 “데이터베이스”라고 하고 이 데이터베이스가 추가 된 형태를 3티어 아키텍처라고 한다.

HTTP

아키텍처 간에 요청과 응답을 할떄에 약속 몇가지가 존재한다 프로토콜 이라는 통신규약이 존재한다, 웹 어플리케이션에서는 서로 HTTP를 이용하여 대화를 주고 받는데 HTTP이용해 주고받는 메세지를 HTTP메세지 라고 한다.

예시) 페이지 들어갈떄 : DNS 서버에 접속한수 IPr가 무엇인지 요청하면 ~ DNS 서버는 IP응답 해준다.

요청(request) :

  • Method는 클라이언트가 수행하고자 정의한 GET,POST같은 동사나 OPTIONS나 HEAD와 같은 명사이다.
  • 가져오려는 리소스의 경로; 예를 들면 프로토콜 (http://), 도메인 (여기서는 developer.mozilla.org), 또는 TCP 포트 (여기서는 80)인 요소들을 제거한 리소스의 URL입니다.
  • HTTP 프로토콜의 버전.
  • 서버에 대한 추가 정보를 전달하는 선택적 헤더들.

응답(response):

  • HTTP 프로토콜의 버전.
  • 요청의 성공 여부와, 그 이유를 나타내는 상태 코드.
  • 아무런 영향력이 없는, 상태 코드의 짧은 설명을 나타내는 상태 메시지.
  • 요청 헤더와 비슷한, HTTP 헤더들.
  • 선택 사항으로, 가져온 리소스가 포함되는 본문.
profile
Frontend Developer

0개의 댓글