Client Server Architecture,HTTP,API,Ajax

katsukichi·2021년 3월 18일
0

CodeStates_IM

목록 보기
28/48

클라이언트 서버 아키텍쳐

2 tier Architecture

쇼핑몰앱 -> 인터넷연결이없으면 작동하지않는다.

만약판매하는 상품정보가 전부 앱안에 들어있다면 ?

새로운 상품목록을 받으려면 앱자체를 업데이트해야함 ; 너무별론데

리소스가 존재하는곳 과 리소스를 사용하는 앱을 분리시킨것을 2-Tier 아키텍처 , 다른말로는 클라이언트-서버 아키텍처라고 부른다

3 tier Architecture

클라이언트 - 서버 - DB 의 3단계형태이다.

클라이언트와 서버의 종류

클라이언트
1. 웹사이트(웹 앱)
2. 스마트폰/태블릿용 앱
3. 데스크탑 앱

서버
1. 웹서버
2. 파일 서버
3. 메일 서버
4. 데이터베이스 서버

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

클라이언트 서버간의 요청과 응답이있다.

프로토콜 : 통신 규약 , 즉 약속이다.

요청을 하기위해서는 꼭 지켜야하는 몇가지 약속이 존재한다.

웹 어플리케이션 프로토콜 : HTTP

쉽게 생각하면 GET 요청

응답으로는 200 OK , 404, 500대.. 등등

이런게다 HTTP요청이다.

주요 프로토콜

OSI 7 Layers 라는게 나오는데 나중에 찾아보자 ㅠㅠ

물리계층을 1단계로 쭉 올라오는데

4단계에 전송계층 우리가 주로듣던 TCP , UDP 라는친구가 나온다.

TCP는 HTTP,FTP통신 등의 근간이 되는 인터넷 프로토콜이다. (서로 승인과정이 있다.)

UDP는 (양방향 TCP와는 다르게)단방향으로 작동하는 훨씬 더 단순하고 빠르지만 신뢰성이 낮은 인터넷 프로토콜이다. (일단 연결한다는 위험성이있다)

이부분 약간 기억나는거같다.

더올라가면

7계층에 응용계층이존재한다

주로듣던

HTTP,HTTPS,FTP등등 ..

HTTP : 웹에서 HTML,JSON등의 정보를 주고받는 프로토콜

HTTPS: HTTP에서 보안이 강화된 프로토콜

FTP : 파일전송 프로토콜
SMTP : 메일을 전송하기 위한 프로토콜
SSH : CLI환경의 원격 컴퓨터에 접속하기 위한 프로토콜 ( 라즈베리파이같은거할때 많이썻엇다..)
RDP : windows계열의 원격 컴퓨터에 접속하기위한 프로토콜
WebSocket : 실시간통신,Push등을 지원하는 프로토콜 ( 아마 소켓통신? 인거같다 1:1 채팅기능 )

API

우리는 서버가 어떻게 구성되어있는지 알아야지 요청을 할수있지만

우리가 직접 서버를 짠사람이 아니라면 어떻게 알수있을까 ?

그게바로 APIDLEK.

서버(개발자)는 클라이언트(개발자)에게 리로스를 잘 활용할수있도록 인터페이스를 제공해줘야한다.

Application Programming Interface = API 이다.

CRUD와 HTTP API

Read = > GET
Create = > POST
Update = > PUT 또는 PATCH
Delete = > DELETE

HTTP

HTTP - stateless (무상태성) : HTTP는 특정 상태르 담고 있지 않고, 이전 요청 다음요청을 기억하지 않는다.

HTTP - connectionless (비연결성):연결 상태를 유지시키지 않는다

Ajax

깜빡임 없이 seamless 하게 페이지를 설계할수있게 해주는 장본인

Ajax순수 코드는 실제로 좀 어렵고 지저분해서
(이부분이 아마 XMLHttpRequest)

Jquery 라이브러리의 Ajax를 사용하곤한다.

이후

ES5에서 fetch문법이 나오면서 더 간략하게 ajax요청을 할수있게 되었다.

profile
front-back / end developer / Let's be an adaptable person

0개의 댓글