Tags:
Node Thumbnail

Mark Nottingham ประธานกลุ่มพัฒนามาตรฐาน HTTP/2 ของ IETF เขียนบล็อกระบุว่ามาตรฐาน HTTP/2 นั้นใกล้จะสมบูรณ์แล้ว เขาจึงมาตอบคำถามว่าหลังจากมี HTTP/2 แล้วจะมีอะไรเกิดขึ้นบ้าง

  1. API เหมือนเดิม HTTP/2 ยังคงใช้ API ชุดเดียวกับ HTTP/1 ถ้าเซิร์ฟเวอร์รองรับก็น่าจะนำโค้ดเดิมไปใช้งานได้ทันที โดยอาจจะมี API ใหม่ๆ บ้างแต่ก็เป็นแค่ทางเลือกเพิ่มเติมที่เบราว์เซอร์และเซิร์ฟเวอร์อาจจะไม่รองรับ
  2. การ Request มีค่าใช้จ่ายน้อยลง ปัญหาของ HTTP/1 คือการเรียก HTTP Request แต่ละครั้งมีค่าใช้จ่ายสูงมาก จากการที่ต้องรอ request ก่อนหน้าให้ส่งข้อมูลครบเสียก่อน และ header ขนาดใหญ่ ระบบ multiplexing ใน HTTP/2 จะช่วยให้ request ขนาดเล็กแทรกกลางขณะที่กำลังส่ง request ขนาดใหญ่ได้ และ header ใน HTTP/2 ก็มีการบีบอัด
  3. เป็นมิตรกับเครือข่ายและเซิร์ฟเวอร์ จากข้อ 2. เมื่อใช้จำนวน connection น้อยลง เซิร์ฟเวอร์และเครือข่ายก็น่าจะโหลดน้อยลงด้วย จากเดิมที่ทุกวันนี้เว็บหนึ่งๆ อาจจะเปิดการเชื่อมต่อหลายๆ ครั้งพร้อมกันไปยังเซิร์ฟเวอร์ แถมหน้าเว็บแต่ละหน้าอาจจะเชื่อมต่อหลายเซิร์ฟเวอร์
  4. Cache Pushing HTTP/2 เปิดให้เซิร์ฟเวอร์สามารถส่งข้อมูลบางอย่างที่เบราว์เซอร์น่าจะได้ใช้งานในอนาคตไปล่วงหน้าได้ เช่น เมื่อเข้าหน้าเว็บหน้าแรก เซิร์ฟเวอร์อาจจะส่ง CSS ทั้งหมดมาให้ในครั้งเดียว เพื่อให้เก็บไว้ใช้งานต่อๆ ไป
  5. เบราว์เซอร์ยกเลิก request ได้ ใน HTTP/1 หากเบราว์เซอร์ส่ง request ไปแล้ว และเปลี่ยนใจไม่รับข้อมูล เช่น ผู้ใช้กดปุ่มยกเลิก ทางเลือกเดียวที่จะแจ้งยกเลิกเซิร์ฟเวอร์ได้คือการตัดการเชื่อมต่อทิ้ง แต่ใน HTTP/2 จะมีข้อมูล RST_STREAM เพื่อยกเลิกข้อมูลที่ร้องขอไปแล้ว แต่ยังเก็บการเชื่อมต่อไว้ใช้งานอย่างอื่นต่อไป
  6. เข้ารหัสมากขึ้น ประเด็นการเข้ารหัสเป็นประเด็นร้อนของ HTTP/2 อย่างไรก็ดีตอนนี้ HTTP/2 ยังไม่บังคับให้ต้องเข้ารหัสเสมอ แต่หากเข้ารหัสประสิทธิภาพโดยรวมของการใช้งานก็จะดีกว่าใน HTTP/1 ในตอนนี้ Chrome และ Firefox ระบุว่าจะใช้ HTTP/2 เฉพาะเมื่อเข้ารหัสแล้วเสมอ
  7. Binary โพรโตคอลเดิมที่สามารถ telnet ไปยังเซิร์ฟเวอร์เพื่อส่งคำสั่งได้โดยตรงจะทำไม่ได้ใน HTTP/2 อีกแล้ว ปัญหาของ HTTP/1 ที่ใช้ข้อความที่คนอ่านออกได้สร้างความยุ่งยากในการอิมพลีเมนต์หลายอย่าง
  8. ต้องใช้เวลาเรียนรู้กันสักระยะ การเปลี่ยนไปใช้ HTTP/2 จะไม่ได้เพิ่มประสิทธิภาพเว็บทันตาเห็นอย่างที่หลายคนหวัง แต่ต้องใช้เวลาปรับตัวเพื่อให้เว็บต่างๆ ปรับตัวเข้ากับฟีเจอร์ของ HTTP/2 ตัวอย่างเช่นการรวมการเชื่อมต่อไปยังเซิร์ฟเวอร์เป็นการเชื่อมต่อเดียวต่อหนึ่งเซิร์ฟเวอร์ในบางครั้งก็มีผลเสีย
  9. แนวทางสำหรับ HTTP/3 HTTP/1 ถูกใช้งานมาแล้วถึงสิบห้าปี การปรับไปใช้ HTTP/2 จะเป็นบทเรียนสำคัญสำหรับการปรับปรุงโพรโตคอลในอนาคต หากเราสามารถเปลี่ยนไปใช้ HTTP/2 ได้ดี ก็จะมีบทเรียนว่าในอนาคตเราสามารถปรับปรุงเพิ่มเติมเป็น HTTP/3 ได้ด้วย

ร่างมาตรฐานล่าสุดสามารถเข้าไปอ่านได้ใน GitHub ครับ

ที่มา - Mark Nottingham

Get latest news from Blognone

Comments

By: Avexiouz
AndroidUbuntuWindows
on 1 February 2014 - 02:43 #676426

การ Request มีค่าใช้จ่ายน้อยลง

ใช้คำว่า "ค่าใช้จ่าย" อ่านแล้วรู้สึกแปลกๆครับ เหมือนจะพูดถึงเป็นหน่วยเงิน
ถ้าใช้คำว่า มี "ต้นทุน" น้อยลง น่าจะฟังดูครอบคลุมไปถึงทรัพยากรทางด้านเวลา โอกาส สุขภาพทางอารมณ์(ที่ผู้ใช้ต้องรอโหลด)

By: hisoft
ContributorWindows PhoneWindows
on 1 February 2014 - 03:37 #676429 Reply to:676426
hisoft's picture

ผมว่า "ค่าใช้จ่าย" ดูตรงความหมายมากกว่านะครับ

By: Avexiouz
AndroidUbuntuWindows
on 25 January 2018 - 19:58 #676473 Reply to:676429

.

By: heart
ContributoriPhone
on 18 February 2015 - 11:24 #792217 Reply to:676426
heart's picture

ผมว่า ค่าใช้จ่ายก็เข้าใจได้นะครับ

By: Kerberos
AndroidRed HatUbuntuWindows
on 1 February 2014 - 23:09 #676563
Kerberos's picture

อืม ข้อ 7 นี่ทำงานยากขึ้นอีกนิดนึงล่ะ เมื่อการเคยทดสอบปัญหา connection แบบด่วนๆ จากเครื่องไหนก็ได้ ต่อไปต้องเขียน tool ไปไว้ใช้แล้วล่ะสิ