클라이언트-서버 구조와 HTTP란?

2025. 3. 21. 18:35·BackEnd
목차
  1. 클라이언트
  2. 서버
  3. 서버 - 클라이언트 구조의 특징
  4. HTTP의 특징

서버 - 클라이언트 구조란?


웹 서비스를 서버와 클라이언트로 분리시킨 설계방식. 2티어 아키텍처 혹은 클라이언트-서버 아키텍처라고 함

클라이언트

클라이언트는 브라우저 상에서 동작하는 페이지나 기기에 설치하여 사용하는 애플리케이션 등을 의미하고, 사용자와 직접 상호작용합니다.

서버

서버는 사용자가 클라이언트를 통해 보낸 요청을 처리하고 올바른 데이터를 반환하는 역할을 함

서버 - 클라이언트 구조의 특징

  • 확장성(Scalability)
    • 서버가 클라이언트와 독립적이기 때문에 서버의 확장 혹은 트래픽 분산에 유연하게 대처가 가능
  • 멀티플랫폼 지원
    • 서버는 브라우저, 모바일 앱 등의 다양한 클라이언트나 플랫폼에 대해 동일한 서비스 제공 가능
  • 업데이트 및 유지보수 편리
    • 클라이언트를 업데이트할 필요 없이 서버의 로직을 변경이 가능

HTTP(HyperText Transfer Protocol)란?


웹에서 클라이언트와 서버 간 데이터 송수신을 위한 프로토콜.
TCP/IP 프로토콜을 기반으로 동작하기 때문에 클라이언트는 서버의 IP 주소와 포트 번호를 사용하여 통신함.

HTTP의 특징

  • 무상태(Stateless)
    • 서버는 이전에 클라이언트가 보낸 요청을 기억하지 않음
    • 필요에 따라 쿠키, 세션, 캐시와 같은 방법으로 이전 요청에 대한 데이터를 따로 관리함
  • 비연결(Connectionless)
    • 클라이언트가 서버로 요청을 보내고 응답을 받으면 그 즉시 서버와 클라이언트의 연결은 종료된다.
    • TCP/IP 프로토콜을 사용하는데 비연결성?
      • 필요한 리소스를 요청받았을때 해당 리소스에 대한 반환이 끝나고 TCP연결을 끊는다
      • 이 과정에서 TCP의 작동 방식인 3way-handshake는 일어난다.
      • 기존에는 비지속연결 방식으로 각 요청 1개에 대해서 매번 3way-handshake를 했었으나, 최근 HTTP 버전에서는 지속연결 방식으로 필요한 리소스를 한꺼번에 요청하고 한꺼번에 반환 받은 후 연결을 닫는 방식을 사용한다
  • 클라이언트 - 서버 구조
    • 클라이언트와 서버가 분리되어 있어서 클라이언트 - 서버 구조가 가지는 장점을 가진다.

'BackEnd' 카테고리의 다른 글

API의 구현과 API 명세서-1  (2) 2025.03.21
HTTP 요청의 구조와 통신 과정 / HTTP 메서드  (0) 2025.03.21
HTTP 헤더2 - 캐시와 조건부 요청  (0) 2025.03.19
HTTP 헤더1 - 일반 헤더  (2) 2025.03.18
HTTP 상태코드  (0) 2025.03.06
  1. 클라이언트
  2. 서버
  3. 서버 - 클라이언트 구조의 특징
  4. HTTP의 특징
'BackEnd' 카테고리의 다른 글
  • API의 구현과 API 명세서-1
  • HTTP 요청의 구조와 통신 과정 / HTTP 메서드
  • HTTP 헤더2 - 캐시와 조건부 요청
  • HTTP 헤더1 - 일반 헤더
devStudent
devStudent
저의 개발(Development) 공부(Study) 기록을 추적(Tracing) 하는 블로그입니다!
  • devStudent
    Dev_Study_Trace
    devStudent
  • 전체
    오늘
    어제
    • 분류 전체보기 (23)
      • BackEnd (11)
      • DevOps (4)
      • Algorithm (7)
      • DDD 12기 (Server) (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    boj1068
    yml
    리버스 프록시
    Divide and conquer
    프록시 실습
    http 상태코드
    도커
    boj 1992
    NGINX
    백준
    분할 정복 알고리즘
    백준 1068번
    알고리즘
    쿠버네티스
    데브 옵스
    docker
    boj
    GitHub Actions
    백준 1092
    devops
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
devStudent
클라이언트-서버 구조와 HTTP란?

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.