반응형
클라이언트-서버 모델 개요
클라이언트
- 정의: 서비스를 요청하는 프로그램이나 장치.
- 역할: 사용자 입력을 받아 서버에 요청을 보내고, 서버로부터 받은 응답을 사용자에게 제공.
- 예: 웹 브라우저, 모바일 앱 등.
- 웹 브라우저: 인터넷 웹사이트를 탐색하고 서버에서 웹 페이지를 요청하여 표시합니다.
- 모바일 앱: 다양한 서비스를 제공하기 위해 서버에 요청을 보내고 응답을 받아 사용자에게 표시합니다.
서버
- 정의: 클라이언트의 요청을 처리하고 응답을 제공하는 프로그램이나 장치.
- 역할: 데이터베이스 조회, 비즈니스 로직 처리, 클라이언트에게 응답 제공.
- 예: 웹 서버, 데이터베이스 서버, 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 메서드를 통해 자원에 접근.
반응형
'웹 기본지식' 카테고리의 다른 글
API란 무엇인가? (0) | 2024.07.27 |
---|---|
개발자 기술 로드맵 (0) | 2024.06.01 |
public ip 와 private ip 는 어떤것인지 (0) | 2024.05.31 |
도메인 주소를 브라우저 주소창에 입력 후 일어나는 프로세스 정리 (0) | 2024.05.23 |
http status 값 정의 (2) | 2020.05.14 |