이전 글에서는 단일 연결을 사용한 HTTP/2와 HTTP/1 성능 비교를 살펴봤어요(HTTP/2 vs HTTP/1 성능 참조). 이 글에서는 지연 시간(latency)을 적용했을 때 HTTP/2와 HTTP/1의 비교, 그리고 지연 시간이 HTTP 프로토콜 요청에 어떤 영향을 미치는지 보여 드릴게요.
클라이언트가 요청을 보낼 때 지연 시간이 발생하는데, 네트워크 환경(트래픽, 서버 거리 등)에 따라 다르게 나타나요. HTTP 1.1 프로토콜에서는 지연 시간의 영향이 커요. 여러 요청을 보내야 할 때 먼저 요청을 보내고, 서버 응답을 기다린 후 다음 요청을 보내는 방식이기 때문이에요. 물론 여러 연결을 사용할 수도 있지만, 서버 측에 더 많은 리소스가 필요하고 확장성이 좋지 않아요.
HTTP/2 프로토콜은 단일 연결로 모든 요청을 처리하기 때문에 지연 시간의 영향이 훨씬 적어요. 처리를 기다리지 않고 여러 요청을 동시에 보낼 수 있어서 처리 속도가 훨씬 빠르게 느껴져요.
HTTP/2 지연 시간 테스트
무료 HTTP/2 Golang 테스트 서버를 사용해 지연 시간이 HTTP/2 vs HTTP/1에 어떤 영향을 미치는지 보여 드릴게요.
HTTP/2 프로토콜을 사용하면 모든 요청을 서버에 보내고 응답을 비동기적으로 처리하기만 하면 돼요. 처리 속도가 매우 빠르며 1초도 채 걸리지 않아요.
반면 HTTP/1 프로토콜에서는 요청을 하나씩 보내야 하며, 다음 요청을 보내기 전에 서버의 응답을 기다려야 하기 때문에 처리 속도가 느려요.

아래 링크에서 Windows용으로 미리 컴파일된 sgcWebSockets 데모 샘플을 다운로드할 수 있어요. 다양한 옵션을 테스트하고 두 프로토콜 간의 성능을 비교해 보세요.
