1P by neo 9일전 | favorite | 댓글 1개

HTTP/2 Push 비활성화 계획

  • 발표자: Valentin Gosu
  • 날짜: 2024년 9월 5일
요약
  • HTTP/2 Push 비활성화 계획: 모든 플랫폼에서 HTTP/2 Push를 비활성화할 예정임
  • 다른 브라우저의 상태:
    • Safari: HTTP/2 Push 비활성화에 대한 공식 자료는 없지만, 로컬 테스트 결과 현재 버전에서 푸시 스트림을 거부함
    • Chrome: 2022년 9월 Chrome 106 버전에서 HTTP/2 Push 비활성화, rel="preload"와 103 Early hints를 대체 방법으로 권장함
  • Firefox의 상황:
    • Firefox는 최근까지 HTTP/2 Push를 지원했으나, 최근 몇 달 동안 HTTP/2 Push로 인해 Firefox에서만 발생하는 웹 호환성 버그가 발견됨
    • 웹 서버와 웹사이트가 Firefox에서 테스트하지 않으면 이 기능이 웹사이트가 Firefox에서만 작동하지 않게 할 수 있음
    • HTTP/2 Push를 비활성화할 예정이지만, 구현은 당분간 남아 있을 예정임
    • 내년 봄 ESR 140 브랜치 전에 완전히 제거할 가능성이 높음
문의사항
  • 문의: 우려 사항이 있으면 알려달라고 요청함

# GN⁺의 정리

  • HTTP/2 Push 비활성화: Firefox가 HTTP/2 Push를 비활성화하는 이유와 다른 브라우저의 상태를 설명함
  • 웹 호환성 문제: HTTP/2 Push로 인해 발생하는 Firefox 전용 웹 호환성 문제를 해결하기 위함
  • 대체 방법: rel="preload"와 103 Early hints를 대체 방법으로 권장함
  • 관련 프로젝트: HTTP/2 Push를 대체할 수 있는 다른 기술이나 프로젝트를 고려할 수 있음
Hacker News 의견
  • HTTP/2 Push가 실패한 이유를 설명하려던 사람들에게 사과가 없어서 불만임

    • Google의 전문가들이 HTTP/2 Push를 스펙에 포함시키려 했음
    • 스펙에 보수적으로 접근해야 함
  • HTTP/2 Push 실패 이유가 설득력 없었음

    • Jake Archibald의 블로그 글이 브라우저 구현 문제를 지적했음
    • 브라우저가 이미 preload 링크를 지원함
  • HTTP/3 0-RTT 시작과 103 Early Hints를 사용하면 속도를 회복할 수 있음

    • HTTP/1과 역호환 가능함
  • HTTP/2 Push의 종말이 아쉬움

    • .NET과 nginx에서 제대로 구현되지 않았음
    • 캐시 다이제스트 부족이 문제였음
    • Chrome은 결국 이를 제거했음
  • Firefox가 HTTP/2 Push를 제대로 처리하지 못함

    • 다른 브라우저는 이를 무시하지만 Firefox는 문제를 일으킴
  • HTTP/2 Push가 널리 채택되지 않은 이유에 대한 의문

    • 브라우저 지원 부족 또는 CDN과의 호환성 문제일 가능성
  • HTTP/2 Push를 REST API에 활용하는 아이디어가 있었음

    • 서버가 관련된 자원을 한 번에 가져와서 클라이언트에 푸시할 수 있음
    • JSON:API와 같은 다른 메커니즘으로도 구현 가능함
  • HTTP/2 Push 관련 기사와 연구 링크 제공

  • Mike Belshe와의 대화에서 HTTP/2 Push의 문제점이 논의되었음

    • '오버 푸시' 문제와 브라우저 캐시와의 소통 문제
    • HTTP Early Hints와 Resource Hints가 HTTP/2 Push의 필요성을 대체함