← 질문 목록
#15깊이 0

HTTP/2는 HTTP/1.1의 무엇을 고쳤는가?

네트워크기초프로토콜

답변 연습

내 답변 적어보기접힘
이 브라우저에 자동 저장 · 0자
모범답안 확인하기내 답변 뒤에 열어보세요

HTTP 계층의 줄서기를 줄였다. HTTP/1.1도 여러 요청을 미리 보낼 수 있지만 응답은 요청 순서대로 내보내야 한다. HTTP/2는 요청과 응답을 프레임으로 쪼개고 스트림 번호를 붙여 한 연결에 섞어 보낸다.

기준HTTP/1.1HTTP/2
한 연결의 요청파이프라이닝 가능, 응답은 요청 순서대로여러 스트림의 프레임을 섞어서
헤더매번 통째로표로 눌러서(HPACK)
병렬 처리보통 여러 TCP 연결로 보완한 연결에서 여러 스트림 진행

각 스트림 안에서는 프레임 순서를 지키지만 서로 다른 스트림은 독립적으로 진행한다. 느린 응답 하나가 다른 응답의 HTTP 프레임까지 기다리게 하지는 않는다.

HTTP/1.1 파이프라이닝은 요청을 기다리지 않고 연달아 보낼 수 있다. 그러나 서버는 응답 순서를 지켜야 하고 연결 실패 뒤 안전하게 재시도할 요청도 가려야 한다. 브라우저가 여러 연결을 열어 병렬성을 얻은 이유다.

주의

다만 TCP 계층의 줄서기는 남는다. 패킷 하나가 유실되면 그 연결의 모든 스트림이 재전송을 기다린다. HTTP/3가 전송을 QUIC으로 바꾼 이유가 이것이다.

HTTP/1.1의 우회책은 HTTP/2에서 오히려 비용이 될 수 있다. 도메인을 쪼개면 연결 재사용과 헤더 압축 범위가 나뉜다. 스프라이트는 한 조각만 바뀌어도 전체를 다시 받게 만든다.

추천 꼬리질문

0/300

적은 내용은 AI 학습에 쓰일 수 있습니다. 이름이나 연락처는 넣지 말아 주세요.

관련 질문

HTTP/2는 HTTP/1.1의 무엇을 고쳤는가?