반응형

클라이언트-서버 모델 개요

클라이언트

  • 정의: 서비스를 요청하는 프로그램이나 장치.
  • 역할: 사용자 입력을 받아 서버에 요청을 보내고, 서버로부터 받은 응답을 사용자에게 제공.
  • : 웹 브라우저, 모바일 앱 등.
  • 웹 브라우저: 인터넷 웹사이트를 탐색하고 서버에서 웹 페이지를 요청하여 표시합니다.
  • 모바일 앱: 다양한 서비스를 제공하기 위해 서버에 요청을 보내고 응답을 받아 사용자에게 표시합니다.

 

서버

  • 정의: 클라이언트의 요청을 처리하고 응답을 제공하는 프로그램이나 장치.
  • 역할: 데이터베이스 조회, 비즈니스 로직 처리, 클라이언트에게 응답 제공.
  • : 웹 서버, 데이터베이스 서버, API 서버 등.
  • 웹 서버: 웹 페이지를 제공하고, HTTP 요청을 처리합니다.
  • 데이터베이스 서버: 데이터를 저장하고, 데이터베이스 쿼리를 처리합니다.
  • API 서버: 클라이언트 애플리케이션에 기능과 데이터를 제공하는 API를 제공합니다.

클라이언트가 서버에 요청하는 방식

서버에 요청하는 프로토콜에는 여러 가지가 있지만, 가장 일반적으로 사용되는 프로토콜은 HTTP/HTTPS입니다. 이 외에도 WebSocket, FTP, SMTP 등이 있습니다. 각 프로토콜은 특정한 용도와 방식으로 서버와 클라이언트 간의 통신을 지원합니다. 아래는 주요 프로토콜들에 대한 정리입니다.

 

1. HTTP/HTTPS

HTTP (HyperText Transfer Protocol)

  • 정의: 웹에서 클라이언트와 서버 간의 데이터 통신을 위해 사용되는 프로토콜.
  • 역할: 웹 페이지, 이미지, 동영상 등 다양한 데이터를 전송.
  • 특징:
    • 비연결성: 각 요청은 독립적이며, 요청 후 연결이 종료됨.
    • 무상태성: 각 요청 간에 상태 정보를 유지하지 않음.
  • 요청 메서드:
    • GET: 데이터를 요청.
    • POST: 데이터를 서버에 제출.
    • PUT: 데이터를 갱신.
    • DELETE: 데이터를 삭제.
    • PATCH: 데이터의 부분적 갱신.
    • OPTIONS: 지원하는 요청 메서드 확인.
GET /index.html HTTP/1.1
Host: www.example.com

 

2. WebSocket

WebSocket 프로토콜

  • 정의: 클라이언트와 서버 간의 양방향 통신을 위한 프로토콜.
  • 역할: 실시간 데이터 전송이 필요한 애플리케이션에서 사용.
  • 특징:
    • 양방향 통신: 클라이언트와 서버가 모두 메시지를 주고받을 수 있음.
    • 지속적인 연결: 연결이 유지되며, 지속적인 데이터 스트림이 가능.
// 클라이언트 측 JavaScript 예제
const socket = new WebSocket('ws://www.example.com/socketserver');

socket.onopen = function(event) {
  socket.send('Hello Server!');
};

socket.onmessage = function(event) {
  console.log('Message from server: ', event.data);
};

 

3. FTP

FTP (File Transfer Protocol)

  • 정의: 파일을 전송하기 위한 프로토콜.
  • 역할: 클라이언트와 서버 간의 파일 업로드 및 다운로드.
  • 특징:
    • 데이터 전송: 큰 파일의 전송에 최적화.
    • 인증: 사용자 이름과 비밀번호로 접근.
ftp ftp.example.com
Username: user
Password: pass

 

4. SMTP

SMTP (Simple Mail Transfer Protocol)

  • 정의: 이메일을 전송하기 위한 프로토콜.
  • 역할: 클라이언트에서 서버로, 서버에서 서버로 이메일 전송.
  • 특징:
    • 이메일 전송: 주로 이메일 클라이언트와 서버 간의 통신.
    • 텍스트 기반: 간단한 텍스트 명령어로 구성.
  • SMTP 예제:
HELO example.com
MAIL FROM:<sender@example.com>
RCPT TO:<recipient@example.com>
DATA
Subject: Test mail
This is a test email.
.
QUIT

 

 

  • HTTP/HTTPS: 웹에서 가장 널리 사용되는 프로토콜로, 웹 페이지와 데이터를 전송.
  • WebSocket: 실시간 양방향 통신을 지원하는 프로토콜로, 채팅 애플리케이션 등에 사용.
  • FTP: 파일 전송에 특화된 프로토콜로, 대용량 파일 전송에 적합.
  • SMTP: 이메일 전송을 위한 프로토콜로, 이메일 클라이언트와 서버 간의 통신을 지원.
  • RESTful API: 리소스 기반의 API 설계 아키텍처로, HTTP 메서드를 통해 자원에 접근.

 

반응형

+ Recent posts