TIL-211118_1

EBinY·2021년 11월 18일
0

TIL - Today I Learned

목록 보기
6/54

HTTP/네트워크 기초 - 1

클라이언트 - 서버 아키텍쳐

  • 2티어 아키텍쳐: 리소스를 관리하는 곳(서버) - 리소스를 사용하는 앱(클라이언트)를 분리
    • 클라이언트는 인터넷을 통해 서버로부터 상품 목록(리소스)을 전달받아 조회하고, 유저에게 보여주는 역할
    • 클라이언트 -> (요청) -> 서버
    • 서버 -> (응답) -> 클라이언트
  • 3티어 아키텍쳐
    • 리소스를 사용하는 클라이언트 - 리소스를 전달하는 서버 - 리소스를 관리하는 데이터베이스
    • 프론트엔드: 클라이언트(유저가 직접 눈으로 보고 상호작용하는 부분)
    • 백엔드: 서버, 데이터베이스(유저에게 보이지 않고, 뒤에서 작동하는 부분)
  • 클라이언트와 서버의 종류
    • 클라이언트: 웹사이트(웹 앱), 스마트폰/태블릿용 앱, 데스크탑 앱
    • 서버: 웹 서버, 파일 서버, 메일 서버, 데이터베이스 서버

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

  • 클라이언트-서버 간의 통신은 요청-응답으로 구성
    • 요청이 있어야 응답이 있음, 서버는 요청하지 않은 리소스를 전달하지 않음(쿠키 제외)
  • 쿠키: 서버에서 일방적으로 클라이언트에 전달하는 작은 데이터
    • 서버가 클라이언트에 정보를 저장하고 불러올 수 있는 수단
    • 도메인에 대한 쿠키가 존재하면, 클라이언트는 도메인에 HTTP요청 시에 쿠키를 함께 전달
    • 즉, 쿠키를 이용하는 것은 단순히 서버가 클라이언트에 쿠키를 전송하는 것만이 아닌, 클라이언트에서 서버로 쿠키를 전송하는 것도 포함이 된다(양방향)
  • 프로토콜: 통신 규약, HTTP가 대표적(웹 애플리케이션 프로토콜)
    • 프로토콜 케이스: 커피 주문(카운터 주문, 앱 주문, 키오스크 주문), 같은 일을 하는 다양한 방법이 존재한다
    • 프로토콜 케이스: 우편 발송(우편물 주소 표기 방법을 지켜야 함), 일을 하는 데에 지켜야하는 규약이 존재한다
  • API(Application Programming Interface)
    • 서버가 클라이언트에게 리소스를 이용하는 인터페이스를 제공(메뉴판 같은 개념)
    • HTTP 프로토콜을 사용하며, 주소(URL, URI)를 통해 접근할 수 있음
    • HTTP API design 예시(CRUD)

0개의 댓글