HTTP/1.1 , HTTP/2

장수빈·2025년 6월 27일

CS

목록 보기
12/14

HTTP 프로토콜의 특징과 /1.1과 /2의 차이점

HTTP 프로토콜의 주요 특징

  • 클라이언트 - 서버 모델: 클라이언트가 요청하면 서버가 응답하는 구조
  • 무상태(Stateless): 이전 요청을 기억하지 않으며, 각각의 요청이 독립적으로 처리
  • 텍스트 기반: 요청과 응답은 사람이 읽을 수 있는 텍스트 형식으로 되어 있음

HTTP/1.1 vs HTTP/2 주요 차이점

항목HTTP/1.1HTTP/2
연결방식기본적으로 TCP 연결 하나당 한 요청(keep-alive 지원으로 제한적 다중 요청 가능)하나의 연결에서 다수의 요청을 동시에 처리(멀티플렉싱)
헤더 압축지원하지 않음헤더 압축(Hpack) 지원
서버 푸시(Server Push)지원하지 않음서버가 클라이언트 요청 없이도 미리 리소스를 보낼 수 있음
이진(Binary) 프로토콜텍스트 기반 프로토콜이진 프로토콜로 성능 향상

HTTP의 무상태(Stateless)극복 방법

HTTP의 무상태(Stateless)

  • HTTP는 요청간의 상태를 유지하지 않음
  • 즉 각각의 요청은 서로 독립적이며, 이전 요청 기억하지 않음

무상태성 극복 방법

  • 쿠키(Cookie): 클라이언트의 브라우저에 저장되는 작은 데이터로, 클라이언트가 요청 시 서버에 쿠키를 전송하여 상태 유지
  • 세션(Session): 서버에서 클라이언트의 상태를 저장하는 방식으로, 보통 쿠키를 통해 세션 ID를 클라이언트에 저장하고 서버는 세션 ID로 상태 관리
  • 토큰(Token): 상태 유지가 필요한 인증 정보를 토큰 형태로 클라이언트가 저장하고 요청 시 전송하여 상태 유지

로그인 상태 유지를 위한 기술

기술저장 위치설명특징
쿠키클라이언트클라이언트 브라우저에 데이터 저장간단한 데이터 유지, 보안성 낮음
세션서버서버에서 클라이언트 상태 저장서버 리소스 사용, 보안성 높음
토큰(JWT)클라이언트JSON 형태로 서명된 토큰을 저장Stateless 서버 구현, 확장성 우수

HTTP/2에서 추가된 주요 기능

Multiplexing(다중화)

  • 하나의 TCP연결에서 여러 요청과 응답을 동시에 처리할 수 있게 해줌
  • HTTP/1.1에서의 Head of Line Blocking(앞선 요청이 끝날 때까지 뒤 요청이 대기하는 문제)해결

Header Compression(헤더 압축)

  • HPACK 압축 방식을 사용하여 헤더의 크기를 줄여 네트워크 효율성 향상

Server Push(서버 푸시)

  • 클라이언트가 요청하지 않은 리소스를 미리 서버가 보내줌
  • 클라이언트의 대기시간(Latency)을 단축

HTTP/2의 Multiplexing이 앱 성능에 주는 이점과 Head of Line Blocking 문제

HTTP/1.1의 Header of Line Blocking 문제

  • HTTP/1.1은 한 요청이 완료될 때까지 동일한 연결에서 다음 요청이 대기해야하는 구조
  • 이로 인해 긴 요청이 뒤의 빠른 요청을 지연시키는 현상 발생

HTTP/2의 Multiplexing이 주는 이점

  • 단일 TCP 연결에서 여러 요청을 동시에 처리하여 성능 크게 향상
  • 요청 간 의존성을 없애고, 빠른 요청이 긴 요청을 기다리지 않아도 됨
  • 앱의 전체적인 응답 속도와 사용자 경험 개선

HTTP/3

HTTP/3의 주요 특징

  • TCP 대신 UDP기반 QUIC(Quick UDP Internet Connections) 프로토콜 사용
  • 초기 연결 설정 시간이 더 짧음
  • 기본적으로 TLS 암호화 내장
  • 연결 마이그레이션을 지원하여 모바일 환경에서 더 효율적

HTTP/3가 TCP대신 UDP기반의 QUIC를 사용하는 이유

UDP를 선택한 장점

  • 빠른 연결 설정: TCP의 3 way handshake가 필요없어 빠른 연결 설정 가능
  • Head of Line Blocking 문제해결: TCP계층에서 발생하는 패킷 손실 시 전체 연결이 지연되는 문제 해결 QUIC는 UDP 기반으로 독립적인 스트림을 관리하여 이 문제를 최소화
  • 모바일 친화적: 네트워크 변경(ex: WIFI -> Cellular)시 세션 유지
  • 기본 보안 제공: QUIC는 TLS 1.3을 기본적으로 내장하여 보안 강화
profile
iOS 공부 이모저모 낙서장

0개의 댓글