Chrome에서 HTTP/2 서버 푸시 삭제

이전 공지에 이어 Chrome 106 및 기타 Chromium 기반 브라우저에서 HTTP/2 서버 푸시 지원이 기본적으로 사용 중지됩니다.

이 콘텐츠가 삭제되는 이유는 무엇인가요?

HTTP/2 서버 푸시를 사용하면 웹사이트에서는 요청을 기다리지 않고 페이지에 필요한 리소스를 사전에 전송할 수 있었습니다. 하지만 Jake Archibald가 이전에 글을 쓴 경우 문제가 되었고 성능상의 이점을 실현하기가 어려운 경우가 많았습니다. 그 결과 이 기능을 사용하는 HTTP/2 사이트의 1.25% 에서만 사용되지 않았습니다.

HTTP/2 서버 푸시 사용을 분석한 결과 (Chrome, Akamai) 명확한 순 성능 증가 없이 많은 경우 성능 저하가 발생했습니다.

푸시가 사양에 포함되어 있었음에도 많은 HTTP/3 서버와 클라이언트에서 구현되지 않았습니다. 최신 HTTP/3를 사용하는 대부분의 웹에서는 푸시가 이미 지원 중단되었습니다. 최근에 이 분석을 재실행한 결과, 사이트의 1.25% HTTP/2 지원이 0.7%로 떨어졌습니다.

HTTP/2 서버 푸시의 대안

103 Early Hints는 오류가 발생할 가능성이 훨씬 적은 대안으로, 푸시와 동일한 장점이 많고 단점도 훨씬 적습니다. 103 Early Hints는 서버가 리소스를 푸시하는 대신, 즉시 요청하면 도움이 될 만한 힌트만을 리소스의 브라우저에 전송합니다. 따라서 브라우저가 이러한 리소스가 필요한지 여부를 결정하게 됩니다(예: HTTP 캐시에 해당 리소스가 이미 있는지 여부).

중요한 리소스 미리 로드는 페이지와 브라우저가 함께 작동하여 페이지 로드 초기에 중요한 리소스를 사전에 로드할 수 있게 하는 또 다른 대안입니다. 이 경우 페이지 자체를 먼저 전송해야 하므로 서버 푸시나 Early Hints만큼 빠르지는 않지만, 중요한 페이지 리소스가 지연되지 않는다는 추가 이점이 있습니다. 이는 두 솔루션 모두에서 발생할 수 있습니다.

결론

웹은 무언가를 시도할 수 있어야 하고, 사용되지 않을 때는 버릴 수 있어야 합니다. 푸시의 잠재력은 훌륭해 보였지만 실제로는 이 기능을 사용하는 것이 생각했던 것보다 더 문제가 되었습니다. 하지만 우리는 Push를 통해 103개의 Early Hints를 설계할 때 많은 것을 배웠습니다. 이제 진행을 완료하고 푸시에서 벗어나야 할 때입니다.

감사의 말

Unsplash에 게시된 Scott Rodgerson의 히어로 이미지