WEB - 웹 통신의 흐름2

김지승·2025년 9월 16일

CS

목록 보기
18/22

1. HTTP와 HTTPS

HTTP (HyperText Transfer Protocol)

  • 웹에서 클라이언트와 서버 간 데이터 전송 프로토콜
  • 기본 포트: 80
  • 특징: 무상태(Stateless), 비연결성(Connectionless), 단순하고 확장 가능

HTTPS (HTTP Secure)

  • HTTP + SSL/TLS 암호화
  • 기본 포트: 443
  • 장점: 데이터 암호화, 무결성 보장, 서버 인증, SEO 순위 개선

요약: HTTPS는 사실상 표준이며, 보안 및 신뢰성 확보를 위해 필수적입니다.

2. HTTP Method (GET vs POST)

GET

  • 데이터 조회용
  • URL에 파라미터 포함 (/api/users?page=1)
  • 캐시 가능, 히스토리 저장, 길이 제한 존재
  • 멱등성 보장

POST

  • 데이터 생성/수정용
  • 요청 본문(Body)에 데이터 포함
  • 캐시/히스토리 저장 불가, 길이 제한 없음
  • 멱등성 보장 안 함
// GET
fetch('/api/users?page=1')

// POST
fetch('/api/users', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ name: '홍길동' })
})

요약: GET은 안전하고 멱등적, POST는 상태를 바꾸는 요청에 사용.

3. CORS (Cross-Origin Resource Sharing)

  • 브라우저 보안 정책(Same-Origin Policy) 때문에, 다른 출처(Origin)의 자원 접근을 제한함.
  • 출처 = 프로토콜 + 도메인 + 포트

동작 방식

  • Simple Request: 조건 만족 시 바로 요청 가능 (GET 등)
  • Preflight Request: OPTIONS로 서버 허용 여부 확인 후 본 요청 진행

요약: CORS는 보안과 확장성 사이 균형을 맞추기 위한 메커니즘.

4. TCP와 UDP

TCP (Transmission Control Protocol)

  • 연결 지향적, 신뢰성 보장
  • 데이터 순서 유지, 오류 검출, 혼잡 제어
  • 사용: 웹, 이메일, 파일 전송

UDP (User Datagram Protocol)

  • 비연결성, 빠름
  • 순서 보장 X, 오류 복구 X, 오버헤드 적음
  • 사용: 실시간 스트리밍, 온라인 게임, DNS

요약: TCP는 신뢰성, UDP는 속도.

5. 쿠키와 세션

  • 클라이언트(브라우저)에 저장되는 작은 데이터 조각
  • 자동 전송, 4KB 제한, 만료 시간 설정 가능

세션 (Session)

  • 서버에 저장, 세션 ID로 식별
  • 상대적으로 보안성 높음
  • 브라우저 종료 시 만료

요약: 쿠키는 클라이언트 저장, 세션은 서버 저장.

6. REST와 RESTful API

REST 제약 조건

  • 클라이언트-서버 구조
  • 무상태(Stateless)
  • 캐시 가능
  • 일관된 인터페이스
  • 계층 구조
  • 필요 시 코드 온 디맨드

RESTful API 설계 원칙

  • 자원(Resource)은 URI로 표현
  • 행위는 HTTP Method로 표현
  • 응답 메시지는 스스로를 설명해야 함

// RESTful API 예시
GET /api/users // 사용자 조회
POST /api/users // 사용자 생성
PUT /api/users/123 // 사용자 수정
DELETE /api/users/123 // 사용자 삭제

요약: RESTful API는 “자원 중심” 설계 철학.

7. 로드 밸런싱 (Load Balancing)

필요성

  • 트래픽 분산, 가용성 확보, 성능 향상

알고리즘

  • Round Robin: 순서대로 분배
  • Weighted Round Robin: 서버 가중치 반영
  • Least Connections: 연결 수 가장 적은 서버 선택
  • IP Hash: 클라이언트 IP 기반 분배

종류

  • L4: 전송 계층 (IP, Port) 기반, 빠름
  • L7: 응용 계층 (URL, 헤더, 쿠키) 기반, 정교함

요약: 로드 밸런싱은 안정적 서비스 운영을 위한 핵심 기술.

profile
디등

0개의 댓글