Client-Server Architecture

Siwoo Pak·2021년 7월 29일
0

http/네트워크

목록 보기
1/12

1. 클라이언트-서버 아키텍처의 이해

  • 클라이언트-서버 아키텍쳐 스타일에선 컴포넌트는 클라이언트 유형과 서버유형, 두 가지로 구성됨
  • 제약사항은 주어진 스타일의 구성 요소들이 서로 연결되는 방식을 제한함
  • 클라이언트-서버 아키텍쳐 스타일은 클라이언트와 서버를 연결하는 커넥터 이외에 클라이언트끼리, 서버끼리 연결하는 커넥터를 허용하지 않는 특징을 갖음
  • 리소스가 존재하는 곳 / 리소스를 사용하는 앱을 분리시킨 것
  • 앱은 클라이언트 / 리소스가 존재하는 곳은 서버
  • 클라이언트와 서버는 요청과응답을 주고받는 관계로, 요청을 해야 응답 해준다.
  • 일반적으로 서버는 리소스를 전달해주는 역할만 담당
  • 리소스를 저장하는 공간은 데이터베이스에서
  • 여기서 데이터베이스가 추가된 형태를 3티어 아키텍쳐
  • 클라이언트에서 어떠한 정보를 요청하면 서버단에서 요청에 대한 정보를 처리하며 로그인 정보나 아니면 회원가입 리소스를 DB단에서 조회하거나 저장을 하며 그결과를 서버에 넘겨주고 서버또한 그결과를 클라이언트에 응답해준다.
  • 클라이언트처럼 사용자가 직접 눈으로 보고, 클릭하는 등의 상호작용하는 부분을 담당하면 프론트엔드
  • 눈에 안 보이지만 뒤에서 로그인관련, 상품관련등의 DB와 서버에 관련된 개발을 하는 건 백엔드
  • 클라이언트와 서버의 종류
    • 클라이언트: 웹, 모바일, 데스크탑 용 앱
    • 서버: 웹, 파일, 메일, DB 서버

2. HTTP를 이용한 클라이언트-서버 통신의 이해

  • 클라이언트의 요청을 통해 서버에서 그 요청에 대한 로직을 처리하고 그 리소스를 클라이언트에 전달함.
  • 클라이언트에서 요청없이도 서버에서 간혹 알림을 푸쉬메시지를 통해 전달하는 경우도 있음.

2.1 프로토콜

  • 프로토콜: 통신 규약.
  • HTTP:
    • 웹앱에서 클라이언트와서버가 HTTP라는 프로토콜을 통해 통신을 함.
    • 웹에서 이루어지는 모든 데이터 교환의 기초
    • 클라이언트-서버 프로토콜: 수신자 측에 의해 요청이 초기화되는 프로토콜
    • 하나의 환전한 문서는 텍스트, 레이아웃 설명, 이미지, 비디오, 스크립트 등 불러온 하위 문서들로 재구성됨.
    • HTTP: 7layer에서 애플리케이션 계층의 프로토콜
    • 신뢰가능한 전송 프로토콜이라면 이론상으로는 무엇이든 사용할 수 있으나 TCP 혹은 TCP연결인 TLS를 통해 전송됨
  • HTTP메시지: HTTP를 이용해 주고 받는 메시지
    • 요청과 응답을 가짐
    • 요청
    • Method: 보통 클라이언트가 수행하고자 하는 동작을 정의한 GET, POST
    • 일반적으로 클라이언트는 리소스를 가져오거나 HTML폼의 데이터를 전송하려고 하지만, 다른 도장이 요구될수도 있음.
    • Path: 가져오려는 리소스의 경로
    • Version of the protocol: HTTP 프로토콜의 버전
    • Headers: 서버에 대한 추가 정보를 전달하는 선택적 헤더들
    • 응답
    • Version of the protocol: HTTP 프로토콜의 버전.
    • Status code: 요청의 성공 여부와, 그 이유를 나타내는 상태 코드.
    • Status message: 아무런 영향력이 없는, 상태 코드의 짧은 설명을 나타내는 상태 메시지.
    • Headers: 요청 헤더와 비슷한, HTTP 헤더들.
  • 주요 프로토콜
    • 응용계층
      • HTTP: 웹에서 HTML, JSON 등의 정보를 주고받는 프로토콜
      • HTTPS: HTTP에서 보안이 강화된 프로토콜
      • FTP: 파일 전송 프로토콜
      • SMTP: 메일을 전송하기 위한 프로토콜
      • SSH: CLI 환경의 원격 컴퓨터에 접속하기 위한 프로토콜
      • RDP: 윈도우 계열의 원격 컴퓨터에 접속하기 위한 프로토콜
      • 웹소켓: 실시간 통신, Push 등을 지원하는 프로토콜
    • 전송계층
      • TCP: HTTP, FTP 통신 등의 근간이 되는 인터넷 프로토콜
      • UDP: 단방향으로 작동하는 훨씬 더 단순하고 빠르지만, 신뢰성이 낮은 인터넷 프로토콜

3. API의 개념

  • Application Programming Interface
  • 서버는 클라이언트에게 리소스를 잘 활용할 수 있도록 인터페이스를 제공해줘야함(API)
  • 사전적 의미: 의사소통이 가능하도록 만들어진 접점
  • GET: 정보조회
  • POST: 정보 추가
  • PUT, PATCH: 수정
  • DELETE: 삭제
profile
'하루를 참고 인내하면 열흘을 벌 수 있고 사흘을 참고 견디면 30일을, 30일을 견디면 3년을 벌 수 있다.'

0개의 댓글