1. 클라이언트(client) & 서버(server)
· 클라이언트는 리소스를 사용하는 앱의 역할이며 주로 플랫폼에 따라 구분된다.
=> 웹 플랫폼, 스마트폰/태블릿 플랫폼, 데스크탑 플랫폼 ···
· 서버는 리소스가 존재하는 곳이라 볼 수 있고 무엇을 하느냐에 따라 구분된다.
=> 파일 서버, 웹 서버, 메일 서버 ···
· 클라이언트 서버 아키텍처 (Client Server Architecture)
= 리소스가 존재하는 곳(서버)과 리소스를 사용하는 앱(클라이언트)을 분리시킨 것
(2티어 아키텍처라고도 부르며 리소스를 저장하는 데이터베이스가 추가되면 3티어 아키텍처라고 부른다.)
※ 프론트엔드 개발자 vs 백엔드 개발자
클라이언트처럼 사용자가 직접 사용하는 앱을 주로 개발하면 프론트엔드 개발자라고 한다.
사용자 눈에는 보이지 않지만, API, 로그인, 권한 관리 등 사용자 인증을 다루면 백엔드 개발자라고 한다.
(백엔드 개발자는 데이터베이스 등 시스템 설계까지 하기도 한다.)
2. 클라이언트 - 서버 통신
클라이언트와 서버 간의 통신은 요청과 응답으로 구성된다.
보통 요청이 있어야만 응답이 오지만 간혹 서버에서 일방적으로 클라이언트에 정보를 전달하는 경우가 있다.
예를 들어, 쿠키는 어떤 웹 사이트에 들어갔을 때, 서버가 일방적으로 클라이언트에 전달하는 작은 데이터이다.
3. 프로토콜
공통의 데이터 교환 방법 및 순서에 대해 정의한 의사소통 약속, 규약, 혹은 규칙 체계
=> 주요 프로토콜 OSI 7 Layers
(TCP, UDP는 각각 HTTP 1.0, HTTP 2.0으로 지금의 HTTP는 TCP, UDP를 발전시킨 것이다.)
4. HTTP & API (Application Programming Interface)
· HTTP : HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜
· API : 서버가 클라이언트에게 리소스를 잘 활용할 수 있도록 제공하는 인터페이스
ex) 카페에서 손님이 정해진 메뉴를 시키도록 알려주는 메뉴판의 역할!
· HTTP 요청 메서드
=> CRUD에 따른 URL 디자인 참고 : koreanjson.com/
· HTTP 메시지
=> 헤드(head) : 시작줄(start-line)과 HTTP 헤더
=> 바디(body) : HTTP 메시지의 페이로드
· HTTP 상태코드
=> 100 - 109 : 메시지 정보
=> 200 - 206 : 요청 성공
=> 300 - 305 : 리 다이렉션
=> 400 - 415 : 클라이언트 에러
=> 500 - 505 : 서버 에러
5. HTTP의 특성 : 비연결성, 무상태성
· 비연결성 : 클라이언트 요청에 대해 서버가 응답을 마치면 맺었던 연결을 끊는 성질
· 무상태성 : 비연결성으로 인해 서버가 클라이언트를 식별할 수 없는 성질
=> 쿠키나 세션 등으로 클라이언트의 상태를 기억한다.
6. Ajax (Asynchronous Javascript And XML)
= 전체 페이지를 새로 고치지 않고 서버 응답에 따라 동적으로 페이지의 구성요소를 변경하는 기법
'TIL 👩🏻💻' 카테고리의 다른 글
TIL : Mini Node Server (0) | 2021.04.30 |
---|---|
TIL : Chatterbox Client (0) | 2021.04.29 |
TIL : Promise & Async (2) (0) | 2021.04.27 |
TIL : Promise & Async (1) (0) | 2021.04.27 |
TIL : Algorithm (2) (0) | 2021.04.20 |