นำ HTTP/2 Server Push ออกจาก Chrome

จากประกาศก่อนหน้านี้ เราจะปิดใช้การรองรับ HTTP/2 Server Push โดยค่าเริ่มต้นใน Chrome 106 และเบราว์เซอร์อื่นๆ ที่ใช้ Chromium ในรุ่นถัดไป

Why is this being removed?

HTTP/2 Server Push ช่วยให้เว็บไซต์ส่งทรัพยากรที่จําเป็นสําหรับหน้าเว็บได้ทันทีแทนที่จะรอให้ผู้ใช้ขอ แต่วิธีนี้มีปัญหาตามที่ Jake Archibald ได้เขียนไว้ก่อนหน้านี้ และมักให้ผลลัพธ์ด้านประสิทธิภาพที่ยากจะวัดได้ ด้วยเหตุนี้ ฟีเจอร์นี้จึงไม่ค่อยได้ใช้งาน โดยมีเว็บไซต์ HTTP/2 เพียง 1.25% เท่านั้นที่ใช้ฟีเจอร์นี้

การวิเคราะห์การใช้ HTTP/2 Server Push ได้ผลลัพธ์ที่หลากหลาย (Chrome, Akamai) โดยไม่มีการเพิ่มประสิทธิภาพสุทธิที่ชัดเจนและในหลายกรณีประสิทธิภาพกลับลดลง

ไม่มีการนํา Push ไปใช้ในเซิร์ฟเวอร์และไคลเอ็นต์ HTTP/3 จํานวนมาก แม้ว่าจะรวมอยู่ในข้อกําหนดก็ตาม เว็บไซต์ส่วนใหญ่ที่ใช้ HTTP/3 เวอร์ชันใหม่ได้เลิกใช้งาน Push แล้ว เมื่อทำการวิเคราะห์นั้นอีกครั้งเมื่อเร็วๆ นี้ เราพบว่าเว็บไซต์ที่รองรับ HTTP/2 ลดลงจาก 1.25% เป็น 0.7%

ทางเลือกอื่นๆ สำหรับพุชจากเซิร์ฟเวอร์ HTTP/2

103 คำแนะนำเบื้องต้นเป็นทางเลือกที่มีโอกาสเกิดข้อผิดพลาดน้อยกว่ามาก โดยมีข้อดีหลายประการเหมือนกับ Push และข้อเสียน้อยกว่ามาก 103 Early Hints จะส่งเฉพาะคำแนะนำไปยังเบราว์เซอร์ของทรัพยากรซึ่งอาจเป็นประโยชน์ต่อการส่งคำขอทันทีแทนที่เซิร์ฟเวอร์จะพุช resources ซึ่งจะช่วยให้เบราว์เซอร์ควบคุมได้ว่าต้องการใช้หรือไม่ เช่น หากมีทรัพยากรเหล่านั้นอยู่ในแคช HTTP อยู่แล้ว

การโหลดทรัพยากรสําคัญล่วงหน้าเป็นอีกทางเลือกหนึ่งที่ช่วยให้หน้าเว็บและเบราว์เซอร์ทํางานร่วมกันเพื่อโหลดทรัพยากรสําคัญล่วงหน้าตั้งแต่เนิ่นๆ ในการโหลดหน้าเว็บ แม้ว่าจะต้องส่งหน้าเว็บก่อน จึงจะไม่เร็วเท่ากับ Server Push หรือ Early Hints แต่ก็มีข้อดีเพิ่มเติมที่ไม่ทำให้ทรัพยากรหน้าเว็บที่สำคัญล่าช้า ซึ่งอาจเกิดขึ้นได้กับทั้ง 2 โซลูชัน

บทสรุป

เว็บต้องสามารถลองใช้สิ่งต่างๆ และทิ้งสิ่งเหล่านั้นเมื่อไม่ได้ใช้งาน แม้ว่าศักยภาพของ Push จะฟังดูดี แต่การใช้งานจริงกลับมีปัญหามากกว่าที่คาดไว้ อย่างไรก็ตาม เราเรียนรู้สิ่งต่างๆ มากมายจาก Push ซึ่งนำไปใช้ในการออกแบบ 103 Early Hints ถึงตอนนี้ก็ถึงเวลาดำเนินการตามขั้นตอนต่อไปและออกจากพุช

แหล่งข้อมูล