1 คะแนน โดย GN⁺ 2024-09-08 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

แผนการปิดใช้งาน HTTP/2 Push

  • ผู้ประกาศ: Valentin Gosu
  • วันที่: 5 กันยายน 2024
สรุป
  • แผนการปิดใช้งาน HTTP/2 Push: มีแผนจะปิดใช้งาน HTTP/2 Push บนทุกแพลตฟอร์ม
  • สถานะของเบราว์เซอร์อื่น:
    • Safari: ยังไม่มีข้อมูลทางการเกี่ยวกับการปิดใช้งาน HTTP/2 Push แต่จากผลการทดสอบในเครื่องพบว่าเวอร์ชันปัจจุบันปฏิเสธ push stream
    • Chrome: ปิดใช้งาน HTTP/2 Push ไปแล้วใน Chrome 106 เมื่อเดือนกันยายน 2022 และแนะนำ rel="preload" กับ 103 Early hints เป็นทางเลือกทดแทน
  • สถานการณ์ของ Firefox:
    • แม้ว่า Firefox จะรองรับ HTTP/2 Push มาจนไม่นานนี้ แต่ในช่วงไม่กี่เดือนที่ผ่านมาได้พบเว็บคอมแพทิบิลิตีบั๊กที่เกิดขึ้นเฉพาะบน Firefox อันเนื่องมาจาก HTTP/2 Push
    • หากเว็บเซิร์ฟเวอร์และเว็บไซต์ไม่ได้ทดสอบกับ Firefox ฟีเจอร์นี้อาจทำให้เว็บไซต์ใช้งานไม่ได้เฉพาะบน Firefox
    • มีแผนจะปิดใช้งาน HTTP/2 Push แต่ตัว implementation จะยังคงอยู่ไปอีกระยะหนึ่ง
    • มีความเป็นไปได้สูงว่าจะลบออกทั้งหมดก่อนสาขา ESR 140 ในช่วงฤดูใบไม้ผลิของปีหน้า
ข้อสอบถาม
  • สอบถาม: หากมีข้อกังวล ขอให้แจ้งเข้ามา

# สรุปโดย GN⁺

  • การปิดใช้งาน HTTP/2 Push: อธิบายเหตุผลที่ Firefox ปิดใช้งาน HTTP/2 Push และสถานะของเบราว์เซอร์อื่น
  • ปัญหาความเข้ากันได้กับเว็บ: มีเป้าหมายเพื่อแก้ปัญหาความเข้ากันได้กับเว็บที่เกิดขึ้นเฉพาะบน Firefox จาก HTTP/2 Push
  • ทางเลือกทดแทน: แนะนำ rel="preload" และ 103 Early hints เป็นทางเลือกทดแทน
  • โครงการที่เกี่ยวข้อง: อาจพิจารณาเทคโนโลยีหรือโครงการอื่นที่สามารถใช้แทน HTTP/2 Push ได้

1 ความคิดเห็น

 
GN⁺ 2024-09-08
ความเห็นจาก Hacker News
  • รู้สึกไม่พอใจที่ไม่มีคำขอโทษต่อคนที่พยายามอธิบายว่าทำไม HTTP/2 Push ถึงล้มเหลว

    • ผู้เชี่ยวชาญจาก Google พยายามผลักดันให้ใส่ HTTP/2 Push เข้าไปในสเปก
    • ควรใช้แนวทางที่ระมัดระวังกับสเปก
  • เหตุผลที่อธิบายความล้มเหลวของ HTTP/2 Push ฟังไม่ค่อยน่าเชื่อถือ

    • บทความบล็อกของ Jake Archibald ชี้ให้เห็นปัญหาในการ implement ฝั่งเบราว์เซอร์
    • เบราว์เซอร์รองรับลิงก์ preload อยู่แล้ว
  • สามารถกู้คืนความเร็วได้ด้วยการใช้การเริ่มต้นแบบ HTTP/3 0-RTT และ 103 Early Hints

    • ย้อนกลับไปเข้ากันได้กับ HTTP/1
  • น่าเสียดายกับการสิ้นสุดของ HTTP/2 Push

    • ใน .NET และ nginx มีการ implement ได้ไม่สมบูรณ์
    • การขาด cache digest เป็นปัญหา
    • สุดท้าย Chrome ก็ถอดสิ่งนี้ออก
  • Firefox จัดการ HTTP/2 Push ได้ไม่ดีพอ

    • เบราว์เซอร์อื่นเพิกเฉยต่อสิ่งนี้ แต่ Firefox กลับก่อปัญหา
  • มีข้อสงสัยว่าทำไม HTTP/2 Push ถึงไม่ได้รับการยอมรับอย่างแพร่หลาย

    • อาจเป็นเพราะการรองรับจากเบราว์เซอร์ไม่เพียงพอ หรือมีปัญหาความเข้ากันได้กับ CDN
  • เคยมีแนวคิดจะนำ HTTP/2 Push ไปใช้กับ REST API

    • เซิร์ฟเวอร์สามารถดึงทรัพยากรที่เกี่ยวข้องพร้อมกันแล้ว push ไปยังไคลเอนต์ได้
    • สามารถทำได้ด้วยกลไกอื่น เช่น JSON:API เช่นกัน
  • มีการแชร์ลิงก์บทความและงานวิจัยเกี่ยวกับ HTTP/2 Push

  • ในการสนทนากับ Mike Belshe ได้มีการพูดถึงปัญหาของ HTTP/2 Push

    • ปัญหา 'over-push' และปัญหาการสื่อสารกับแคชของเบราว์เซอร์
    • HTTP Early Hints และ Resource Hints เข้ามาแทนความจำเป็นของ HTTP/2 Push