[Network] HTTP와 특성

hi·2022년 8월 25일
0

HTTP (HyperText Transfer Protocol)

거의 모든 형태의 데이터를 HTTP 메시지로 전송
(html, text, image, 음성, 영상, 파일, json, xml (API) 등)

HTTP/1.1
가장 많이 사용하는 버전 (2,3 은 성능 개선)


클라이언트 서버 구조

  • Request Response 구조

클라이언트 / 서버 분리하는 것 중요
👉 양측이 독립적으로 진화 가능


무상태 프로토콜

상태 유지 (Stateful)

  • 항상 같은 서버가 유지되어야 함

무상태 (Stateless)

  • 갑자기 클라이언트 요청이 증가해도 서버 대거 투입 가능 (같은 시간에 딱 맞추어 발생하는 대용량 트래픽)
  • 아무 서버나 호출 가능
  • 응답 서버를 쉽게 변경 가능 (스케일 아웃 - 수평 확장 유리)

but,

  • 데이터 전송량 ↑
  • 로그인한 경우 상태 유지 필요
  • 일반적으로 브라우저 쿠키, 서버 세션등을 사용하여 유지
  • 상태 유지는 최소한만 사용

비 연결성 (connectionless)

클라이언트-서버가 n : 1 인 경우

연결 유지 모델 : 서버 자원 소모
연결 유지x 모델 : 최소한의 자원 사용

  • HTTP는 기본이 연결을 유지하지 않는 모델
  • 서버 자원을 효율적으로 사용 가능

but,

  • TCP/IP 연결을 새로 맺어야 함 -> 3 way handshake 시간 추가
  • 웹 브라우저로 사이트 요청시 html 뿐만 아니라 js, css 등 많은 자원이 함께 다운로드

👉 현재 HTTP 지속 연결(Persistent Connections)로 문제 해결

0개의 댓글