🚀 HTTP/2

2025. 10. 28. 15:33·Computer Science/Network

HTTP/2는 HTTP/1.x의 느린 속도를 개선하기 위해 등장한 새로운 버전입니다. 웹 서핑이 훨씬 쾌적해지도록 지연 시간(Latency)을 줄이고 응답 속도를 높였죠.

이 빠른 속도의 비밀은 '멀티플렉싱', '헤더 압축', '서버 푸시'라는 3가지 핵심 기술에 있습니다.

HTTP/1.x는 기본적으로 한 번에 하나씩 파일을 요청하고 받아야 했습니다. 인터넷 연결이 한 번 맺어져도, 웹페이지에 필요한 이미지, CSS, JS 파일 등 수많은 리소스를 처리하려면 요청한 순서대로 차례차례 기다려야 했죠. 리소스가 100개면 100번의 대기 시간이 생기는 셈입니다.

📌 멀티플렉싱(Multiplexing)

HTTP/1.x가 1차선 도로라면, HTTP/2는 8차선 고속도로입니다. 하나의 TCP 연결 위에서 여러 개의 '스트림'이라는 가상의 차선을 열어 데이터를 동시에 주고받습니다.

덕분에 이미지, CSS, JS 파일이 서로를 기다릴 필요 없이 병렬로 전송됩니다. CSS 파일 전송이 조금 막히더라도(패킷 손실), JS 파일은 쌩쌩 달릴 수 있죠.

이 기술로 HTTP/1.x의 고질적인 문제였던 'HOL Blocking(Head-of-Line Blocking, 선두 차량이 막히면 뒷 차도 못 가는 현상)'을 깔끔하게 해결했습니다.

  • 용어 설명: 
    • 스트림(Stream):
      하나의 연결 통로(TCP) 안에서 데이터를 주고받는 양방향 데이터 차선. 각 요청과 응답이 하나의 스트림을 가집니다.

📌 헤더 압축(Header Compression)

HTTP/1.x는 요청을 보낼 때마다 매번 거의 똑같은 내용의 헤더(쿠키, 브라우저 정보 등)를 중복해서 보냈습니다. 데이터 낭비였죠.

HTTP/2는 HPACK이라는 압축 기술로 이 문제를 해결했습니다. 중복되는 헤더 정보는 빼고, 바뀐 부분만 보내거나, '허프만 코딩'을 이용해 자주 쓰는 정보를 더 적은 비트로 표현(압축)합니다. 덕분에 데이터 전송량이 획기적으로 줄어듭니다.

  • 용어 설명: 
    • 허프만 코딩(huffman coding):
      문자열을 문자 단위로 쪼개 빈도수를 세어 빈도가 높은 정보는 적은 비트 수를 사용하여 표현하고, 빈도가 낮은 정보는 비트 수를 많이 사용하여 표현해서 전체 데이터의 표현에 필요한 비트양을 줄이는 원리

📌서버 푸시(Server Push)

HTTP/1.x에서는 클라이언트가 "HTML 파일 주세요" -> (HTML 수신) -> "CSS 파일 주세요" -> (CSS 수신) -> "JS 파일 주세요" -> (JS 수신) ... 이런 식이었다면, HTTP/2는 서버가 알아서 필요한 파일을 미리 보내줍니다.

서버는 클라이언트가 HTML을 요청한 것을 보고, '아, 이 HTML은 어차피 CSS랑 JS 파일도 필요하겠네?'라고 똑똑하게 판단합니다. 그래서 클라이언트가 요청하기도 전에 CSS와 JS 파일을 '푸시(push)'해줍니다. 불필요한 요청 대기 시간이 사라져 로딩이 훨씬 빨라집니다.


1. HTTP/2를 설명하고 장점 두 가지를 설명하세요.

 

HTTP/2는 이전 버전의 느린 속도를 개선하기 위해 등장했습니다. 멀티플렉싱과 헤더 압축 기술로 빠른 속도를 유지하는 것이 특징인데요. 멀티플렉싱은 하나의 연결 위에서 여러 개의 스트림, 즉 가상의 차선을 열어 데이터를 동시에 주고받는 방식입니다. 덕분에 여러 파일이 순서를 기다릴 필요 없이 병렬로 전송됩니다. 또 이전 버전은 요청마다 거의 똑같은 헤더를 중복해서 보냈지만, 이 버전은 중복되는 정보는 빼고 바뀐 부분만 보내거나, 자주 쓰는 정보를 더 적은 비트로 표현하는 압축 방식을 씁니다.

'Computer Science > Network' 카테고리의 다른 글

⚡️HTTP/3  (0) 2025.10.28
🔒 HTTPS  (0) 2025.10.28
🏗️ HTTP/1.1  (0) 2025.10.27
🕰️ HTTP/1.0  (0) 2025.10.27
🧭 IP 주소  (1) 2025.10.21
'Computer Science/Network' 카테고리의 다른 글
  • ⚡️HTTP/3
  • 🔒 HTTPS
  • 🏗️ HTTP/1.1
  • 🕰️ HTTP/1.0
TECHNING
TECHNING
Hi! I'm techning
  • TECHNING
    TECHNING
    TECHNING
    • 분류 전체보기 (54)
      • Computer Science (45)
        • Design Pattern (11)
        • Programming Paradigm (4)
        • Network (15)
        • Operating System (6)
        • Database (6)
        • Data Structure (3)
      • Algorithm (5)
        • Python (3)
        • Java (1)
      • IT Insight (4)
  • hELLO· Designed By정상우.v4.10.4
TECHNING
🚀 HTTP/2
상단으로

티스토리툴바