01 · Concept

HTTP 프로토콜

HTTP는 웹에서 데이터를 주고받기 위한 애플리케이션 계층 프로토콜입니다. HTTP/1.1, HTTP/2, HTTP/3로 발전하면서 성능이 크게 향상되었습니다.

HTTP/1.1은 keep-alive로 커넥션을 재사용하지만 순차적 요청 처리가 한계입니다.HTTP/2는 멀티플렉싱, 헤더 압축, 서버 푸시를 도입했습니다.HTTP/3는 QUIC(UDP 기반) 프로토콜 위에서 동작하며, 0-RTT 연결과 독립 스트림으로 성능을 극대화합니다.

02 · Interactive Demo

HTTP 버전별 연결 흐름 비교

HTTP/1.1, HTTP/2, HTTP/3의 요청 처리 방식 차이를 시각적으로 비교하세요.

HTTP/1.1순차적 요청, keep-alive로 커넥션 재사용
TCP 연결
TLS 핸드셰이크
요청 1
요청 2 (대기)
요청 3 (대기)
Keep-Alive파이프라이닝 (제한적)텍스트 기반 프로토콜
HTTP/2멀티플렉싱으로 동시 요청 처리
TCP 연결
TLS 핸드셰이크
요청 1·2·3 (동시)
멀티플렉싱헤더 압축 (HPACK)서버 푸시바이너리 프레이밍
HTTP/3QUIC 기반, 0-RTT 연결 가능
QUIC + TLS (통합)
요청 1·2·3 (동시)
QUIC (UDP 기반)0-RTT 연결독립 스트림내장 TLS 1.3
총 소요 시간 비교
490ms
HTTP/1.1
250ms
HTTP/2
170ms
HTTP/3
03 · Code Example

코드 예시

실제 코드로 동작 원리를 확인하세요.

const https = require('https');
const fs = require('fs');

const options = {
  key: fs.readFileSync('server.key'),
  cert: fs.readFileSync('server.cert'),
};

https.createServer(options, (req, res) => {
  res.writeHead(200);
  res.end('Hello, HTTPS!');
}).listen(443);
04 · Interview Point

면접 핵심 질문

HTTPS는 HTTP에 TLS(Transport Layer Security) 암호화 계층을 추가한 프로토콜입니다. HTTP는 포트 80, HTTPS는 포트 443을 사용합니다. HTTPS는 기밀성(데이터 암호화), 무결성(변조 방지),인증(서버 신원 확인)을 제공합니다. Google은 HTTPS를 SEO 랭킹 요소로 사용하며, 최신 브라우저는 HTTP 사이트에 "안전하지 않음" 경고를 표시합니다.
QUIC은 Google이 개발한 UDP 기반 전송 프로토콜입니다. TCP의 Head-of-Line 블로킹 문제를 해결하며, TLS 1.3이 내장되어0-RTT 연결이 가능합니다. 각 스트림이 독립적이므로 하나의 패킷 손실이 다른 스트림에 영향을 주지 않습니다. HTTP/3는 QUIC 위에서 동작하며, HTTP/2의 멀티플렉싱 장점을 유지하면서 연결 설정 시간을 대폭 줄입니다.
Keep-Alive는 하나의 TCP 연결을 여러 HTTP 요청에 재사용합니다. 매 요청마다 3-way handshake를 하지 않으므로 연결 설정 비용이 절감됩니다. HTTP/1.1에서는 기본적으로 활성화되며, Connection: keep-alive 헤더로 제어합니다.timeout max파라미터로 유휴 시간과 최대 요청 수를 설정할 수 있습니다.
서버 과부하를 방지하고 공정한 리소스 분배를 위해 도메인당 보통 6개의 동시 TCP 연결로 제한합니다. HTTP/1.1에서는 이 제한을 우회하기 위해 도메인 샤딩(여러 서브도메인 사용)을 활용했습니다. HTTP/2에서는 멀티플렉싱으로 하나의 연결에서 다수의 요청을 동시 처리하므로 이 제한이 사실상 해소됩니다.