TIL_210430

멜로디·2021년 5월 3일
0

Today I Learned

목록 보기
29/30

오늘 배운 것

  • Client Server Architecture
  • HTTP API
  • HTTP
  • Ajax

Client Server Architecture

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

정의

리소스와 존재하는 곳(서버)과 사용하는 곳(클라이언트)을 분리한 것을 뜻한다.

매커니즘

클라이언트는 리소스에 접근하기 위해 서버에 요청을 보내고,
서버는 클라이언트가 요청한 내용에 따라 리소스를 담아 응답한다.
요청이 없다면 응답하지 않는다. 반드시 요청이 선행된 후 응답이 이루어진다.

3티어 아키텍쳐?

보통, 서버는 리소스를 '전달'해주는 역할만 할 뿐,
실제로 리소스를 저장해 두는 공간을 별도로 두는 것이 보통이다.
리소스를 저장하는 공간은 '데이터베이스'라고 부른다.

클라이언트와 서버의 종류

클라이언트

  • 웹사이트
  • 웹앱
  • 스마트폰/태블릿 어플리케이션
  • 데스크탑 프로그램

서버

  • 웹서버
  • 파일서버
  • 메일서버
  • 데이터베이스 서버

대표적인 클라이언트와 서버의 목록은 위와 같다.
실제로는 더 다양한 종류의 클라이언트와 서버가 존재한다.

클라이언트-서버 통신과 HTTP API

프로토콜


프로토콜은 통신 규약이다.
클라이언트와 서버가 통신하기 위해 지켜야 하는 약속인 것이다.

웹에서는 클라이언트와 서버가 서로 HTTP라는 프로토콜을 이용하여 통신을 하고,
이를 이용해 주고받는 메시지를 HTTP Message라고 부른다.

OSI 7 Layers

http 웹에서 html, json등의 정보를 주고받는 프로토콜
https 보안이 강화된 http 프로토콜 (ssl 기술을 이용한다)
ftp 파일 전송 프로토콜
smtp 메일 전송 프로토콜
ssh CLI환경의 원격 컴퓨터에 접속하기 위한 프로토콜
RDP 윈도우 계열의 원격 컴퓨터에 접속하기 위한 프로토콜
WebSocket 실시간 통신, Push 등을 지원하는 프로토콜

상식 : 4th Layer(전송 계층)에 속하는 프로토콜
TCP http, ftp 통신의 근간이 되는 양방향 인터넷 프로토콜
UDP 단방향으로 작동하여 tcp보다 훨씬 더 단순하고 빠르지만, 신뢰성이 낮은 프로토콜

API : Application Programming Interface

클라이언트는 서버에 정확한 요청을 보내야 서버로부터 응답을 받을 수 있다.
하지만 서버가 어떻게 구성되어 있는지는 알 방법이 없다.

이 때 서버는 클라이언트에게 리소스를 잘 활용할 수 있도록 interface를 제공해 주는데, 이것을 API라고 한다.
클라이언트는 서버의 api를 받아서 api가 가이드 한 대로 정확한 요청을 보낼 수 있게 되는 것이다.

HTTP : HyperText Transfer Protocol

요청 메소드

HTTP에서 지원하는 요청 메시지는 다음과 같다.

  • GET: 클라이언트가 서버에게 URL에 해당하는 자료의 전송을 요청한다.
  • HEAD: GET 요청으로 반환될 데이터 중 헤더 부분에 해당하는 데이터만 요청한다.
  • POST: 클라이언트가 서버에서 처리할 수 있는 자료를 보낸다. 예를 들어, 게시판에 글을 쓸 때 클라이언트의 문서가 서버로 전송되어야 한다.
  • PATCH: 클라이언트가 서버에게 지정한 URL의 데이터를 부분적으로 수정할 것을 요청한다.
  • PUT: 클라이언트가 서버에게 지정한 URL에 지정한 데이터를 저장할 것을 요청한다.
  • DELETE: 클라이언트가 서버에게 지정한 URL의 정보를 제거할 것을 요청한다.
  • TRACE: 클라이언트가 서버에게 송신한 요청의 내용을 반환해 줄 것을 요청한다.
  • CONNECT: 클라이언트가 특정 종류의 프록시 서버에게 연결을 요청한다.
  • OPTIONS: 해당 URL에서 지원하는 요청 메세지의 목록을 요청한다.

이 중 GETHEAD 요청은 원칙적으로 이를 호출한다고 해서 서버 측의 데이터에 변화가 있어서는 안 된다.
이를 Safe Method 라고 분류한다. 또한, GET, HEAD, PUT, DELETE 는 동일한 요청이 한번 전송되었을 때와 여러 번 연속하여 전송되었을 때의 서버 측의 처리 결과가 동일해야 한다.
이를 Idempotent Method 라고 분류한다.

Ajax : Asynchoronous Javascript and XML

개요

비동기식 자바스크립트와 XML.

profile
하루하루 배울때마다 기록하는 일기장

0개의 댓글