← 질문 목록
#23깊이 0

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

네트워크기초프로토콜

한 연결에서 요청 하나가 끝나야 다음이 나가던 제약을 없앴다. 앞의 응답이 늦으면 뒤가 통째로 밀리던 문제가 여기서 온다. HTTP/2는 요청과 응답을 프레임으로 쪼개고 스트림 번호를 붙여 한 연결에 섞어 보낸다.

기준HTTP/1.1HTTP/2
한 연결의 요청순서대로 하나씩여러 개가 섞여서
헤더매번 통째로표로 눌러서(HPACK)
브라우저 우회책도메인 쪼개기, 스프라이트필요 없어진다

도착한 순서대로 다시 조립되므로 순서 제약이 사라진다. 연결 하나로 충분해진다.

HTTP/1.1도 연결을 재사용하기는 했다. 다만 응답이 보낸 순서대로 와야 해서 앞의 것이 느리면 뒤에 줄 선 요청이 전부 기다렸다. 그래서 브라우저는 도메인당 연결을 예닐곱 개씩 열었고, 이미지를 하나로 합치는 기법이 유행했다.

주의

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

HTTP/1.1의 우회책은 HTTP/2에서 오히려 비용이 된다. 도메인을 쪼개면 연결이 늘어 HTTP/2의 이점이 사라진다. 스프라이트는 한 조각만 바뀌어도 전체를 다시 받게 만든다.

추천 꼬리질문

0/300

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

관련 질문

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