1 điểm bởi GN⁺ 2024-09-08 | 1 bình luận | Chia sẻ qua WhatsApp

Kế hoạch vô hiệu hóa HTTP/2 Push

  • Người công bố: Valentin Gosu
  • Ngày: 5 tháng 9 năm 2024
Tóm tắt
  • Kế hoạch vô hiệu hóa HTTP/2 Push: Dự kiến sẽ vô hiệu hóa HTTP/2 Push trên mọi nền tảng
  • Tình trạng ở các trình duyệt khác:
    • Safari: Không có tài liệu chính thức về việc vô hiệu hóa HTTP/2 Push, nhưng kết quả thử nghiệm cục bộ cho thấy phiên bản hiện tại từ chối push stream
    • Chrome: Đã vô hiệu hóa HTTP/2 Push trong Chrome 106 vào tháng 9 năm 2022, và khuyến nghị rel="preload" cùng 103 Early Hints là các phương án thay thế
  • Tình hình của Firefox:
    • Firefox vẫn hỗ trợ HTTP/2 Push cho đến gần đây, nhưng trong vài tháng gần đây đã phát hiện các lỗi tương thích web chỉ xảy ra trên Firefox do HTTP/2 Push gây ra
    • Nếu máy chủ web và website không kiểm thử trên Firefox, tính năng này có thể khiến website chỉ không hoạt động trên Firefox
    • Có kế hoạch vô hiệu hóa HTTP/2 Push, nhưng phần triển khai sẽ vẫn được giữ lại trong một thời gian
    • Khả năng cao sẽ bị loại bỏ hoàn toàn trước nhánh ESR 140 vào mùa xuân năm sau
Liên hệ
  • Liên hệ: Yêu cầu mọi người cho biết nếu có điều gì đáng lo ngại

# Tóm tắt của GN⁺

  • Vô hiệu hóa HTTP/2 Push: Giải thích lý do Firefox vô hiệu hóa HTTP/2 Push và tình trạng ở các trình duyệt khác
  • Vấn đề tương thích web: Nhằm giải quyết các vấn đề tương thích web riêng của Firefox do HTTP/2 Push gây ra
  • Phương án thay thế: Khuyến nghị rel="preload" và 103 Early Hints là các phương án thay thế
  • Dự án liên quan: Có thể cân nhắc các công nghệ hoặc dự án khác có thể thay thế HTTP/2 Push

1 bình luận

 
GN⁺ 2024-09-08
Ý kiến trên Hacker News
  • Không hài lòng vì không có lời xin lỗi dành cho những người từng cố giải thích vì sao HTTP/2 Push thất bại

    • Các chuyên gia của Google đã cố đưa HTTP/2 Push vào đặc tả
    • Cần tiếp cận đặc tả một cách thận trọng
  • Lý do thất bại của HTTP/2 Push không đủ sức thuyết phục

    • Bài viết trên blog của Jake Archibald đã chỉ ra các vấn đề trong khâu triển khai của trình duyệt
    • Trình duyệt vốn đã hỗ trợ liên kết preload
  • Có thể khôi phục tốc độ bằng cách dùng khởi động HTTP/3 0-RTT và 103 Early Hints

    • Tương thích ngược với HTTP/1
  • Thật đáng tiếc cho sự khai tử của HTTP/2 Push

    • .NET và nginx đã không triển khai nó đúng cách
    • Thiếu cache digest là một vấn đề
    • Chrome cuối cùng đã loại bỏ nó
  • Firefox không xử lý HTTP/2 Push đúng cách

    • Các trình duyệt khác thì bỏ qua nó, nhưng Firefox lại gây ra vấn đề
  • Có thắc mắc vì sao HTTP/2 Push không được chấp nhận rộng rãi

    • Có thể là do thiếu hỗ trợ từ trình duyệt hoặc vấn đề tương thích với CDN
  • Từng có ý tưởng tận dụng HTTP/2 Push cho REST API

    • Máy chủ có thể lấy các tài nguyên liên quan cùng một lúc rồi push tới client
    • Cũng có thể triển khai bằng các cơ chế khác như JSON:API
  • Cung cấp các liên kết bài viết và nghiên cứu liên quan đến HTTP/2 Push

  • Trong cuộc trò chuyện với Mike Belshe, các vấn đề của HTTP/2 Push đã được bàn luận

    • Vấn đề 'over push' và khó khăn trong việc giao tiếp với cache của trình duyệt
    • HTTP Early Hints và Resource Hints đã thay thế nhu cầu cần đến HTTP/2 Push