본문 바로가기
개발/Network

HTTP의 특성

by BellOne4222 2024. 1. 31.

CH5-04. HTTP의 특성


HTTP의 기본 특성

  • 요청-응답 기반 클라이언트 - 서버 구조 프로토콜
  • 미디어 - 독립적 프로토콜
  • 비연결성 프로토콜
  • statelss 프로토콜
  • 지속 연결 프로토콜

요청-응답 기반 클라이언트 - 서버 구조 프로토콜

  • HTTP 클라리언트(HTTP 요청 메세지)
  • HTTP 서버(HTTP 응답 메세지)
  • 오해 방지 : 서버 간에도 HTTP 메세지를 주고받을 수 있다.

미디어 - 독립적 프로토콜

  • 어떤 형태의 데이터도 HTTP 메세지로 보낼 수 있다.
  • EX) HTML, 이미지, JSON, XML, 파일, 영상, 이미지 등

비 연결성 프로토콜

  • HTTP 1.0, HTTP 1.1, HTTP 2.0은 TCP 기반
  • TCP는 연결성 프로토콜
  • HTTP는 비연결성 프로토콜
  • 다수의 클라이언트가 시도할 경우 연결을 유지하는 동안 서버의 자원 소모가 너무 크다

stateless 프로토콜

  • 서버는 클라이언트의 상태를 기억하지 않는다. → HTTP는 클라이언트의 상태, 무엇을 전송 하였는지 기억하지 않는다.

  • 여러 요청을 보내야 할 경우 한 서버에만 요청해야함

  • 왜 stateless 프로토콜 일까?

HTTP가 stateful 프로토콜일 경우

  • 클라이언트는 한 서버에 종속될 수 있는 우려가 있다. → 그 한 서버가 문제가 생겼을 때 통신을 할 수 없으면 상태가 사라진다. → 종속이 되어서 비효율 적이다.

서버의 IP가 바뀌는 경우, 요청을 보낸 서버에 장애가 생긴 경우, 서버가 여러 대 있는 경우에는 대응을 하기 어렵다. → 문제가 있는 서버 제외하고 다른 서버로 바꿔서 요청을 보내야 하는데 종속이 되면 이 과정이 불가 하기 때문에 종속되어있는게 비효율 적이다.

HTTP가 stateless 프로토콜이기 때문에

  • 클라이언트는 한 서버에 종속될 필요가 없어집니다.
  • 여러 번 요청을 보내야 할 경우 여러 서버에 요청할 수 있습니다.
  • 서버의 확장이 용이해진다.

지속 연결(Keep Alive) : 하나의 연결을 사용해 여러 개의 HTTP 요청/응답 주고 받기

  • 연결할 때 마다 3-way-handshake를 진행해야한다면?

→ 혼잡 증가

→ 시간 지연 증가(handshake, slow start 시간)

  • 한 번 연결이 됐다면 그 연결로 지속적으로 요청 및 응답이 가능하고 메세지를 주고 받을 수 있다.

HTTP 버전별 특성

  • HTTP 0.9 : 단일한 요청 방법(GET 메서드), 비지속 연결, 별다른 기능 X
  • HTTP 1.0 : 다양한 요청 방법과 헤더 추가
  • HTTP 1.1 : 지속 연결 기능 추가(*)
  • HTTP 2.0 : 요청 순서대로 응답을 반환 할 필요 없음, 헤더 압축(*)
  • HTTP 3.0 : UDP 기반 프로토콜인 QUIC로 변경(점유율 점점 상승)

'개발 > Network' 카테고리의 다른 글

HTTP 헤더  (0) 2024.01.31
HTTP 메세지 개관  (0) 2024.01.31
웹 서버와 웹 어플리케이션 서버  (0) 2024.01.31
자원과 자원의 식별  (0) 2024.01.31
DNS  (0) 2024.01.30