ความแตกต่างระหว่างการใช้งาน HTTP/1.1 กับ HTTP/2

Differences in implementations between HTTP/1.1 and HTTP/2

HTTP (Hypertext Transfer Protocol) เป็นโปรโตคอลแอปพลิเคชันที่เป็นมาตรฐานที่ใช้ในการสื่อสารบน www นับตั้งแต่มีการประดิษฐ์ขึ้นในปี 1989 จากการเปิดตัว HTTP/1.1 ในปี 1997 และในปี 2015 มีการใช้เวอร์ชันปรับปรุงใหม่นั่นก็คือ HTTP/2 ซึ่งมีการพัฒนาหลายวิธีในการลดเวลาแฝง โดยเฉพาะอย่างยิ่งที่ในปัจจุบันยีงต้องรับมือกับแพลตฟอร์มมือถือและกราฟิกและวิดีโอที่ต้องใช้เซิร์ฟเวอร์มาก จึงทำให้ HTTP/2 ได้รับความนิยมเพิ่มขึ้นเรื่อย ๆ 

ในบทความนี้จะชี้ให้เห็นถึงความแตกต่างของ HTTP/1.1 กับ HTTP/2 ซึ่งแบ่งได้ตามหัวข้อดังนี้

1.โปรโตคอลไบนารีกับโปรโตคอลข้อความ:

  • HTTP/1.1: โปรโตคอลแบบข้อความ (Text Protocol) ซึ่งหมายความว่าข้อความที่แลกเปลี่ยนระหว่างเบราว์เซอร์และเซิร์ฟเวอร์จะเป็นข้อความธรรมดา (plain text) ในขณะที่มนุษย์สามารถอ่านได้ รูปแบบนี้อาจมีประสิทธิภาพน้อยกว่าในแง่ของการประมวลผล
  • HTTP/2: ใช้โปรโตคอลไบนารี (Binary Protocol) หมายความว่าข้อความถูกเข้ารหัสในรูปแบบไบนารีแทนข้อความล้วน รูปแบบไบนารีนี้มีขนาดเล็กกะทัดรัดมากขึ้นทั้งยังสามารถแยกวิเคราะห์และประมวลผลได้เร็วกว่าโดยคอมพิวเตอร์ ส่งผลให้ประสิทธิภาพการทำงานเร็วขึ้น

มัลติเพล็กซ์:

  • HTTP/1.1: ใช้การเชื่อมต่อเดียวต่อรอบการตอบกลับคำขอ ซึ่งหมายความว่าต้องทำการร้องขอหลายรายการผ่านการเชื่อมต่อหลายรายการ ซึ่งจะนำไปสู่ปัญหาการบล็อกของหัวหน้าสาย
  • HTTP/2: แนะนำการมัลติเพล็กซ์ ทำให้สามารถส่งและรับคำขอและการตอบสนองหลายรายการผ่านการเชื่อมต่อเดียวพร้อมกัน วิธีนี้ช่วยขจัดปัญหาการบล็อกของหัวสายและปรับปรุงประสิทธิภาพการถ่ายโอนข้อมูลอย่างมาก

การพุชเซิร์ฟเวอร์:

  • HTTP/1.1: ในเวอร์ชันนี้ เซิร์ฟเวอร์สามารถตอบสนองคำขอของลูกค้าเท่านั้น หากเซิร์ฟเวอร์ต้องการส่งทรัพยากรเพิ่มเติมไปยังไคลเอนต์ (เช่น ไฟล์ CSS, JS) ไคลเอ็นต์จะต้องรีเควสอย่างชัดเจน
  • HTTP/2: ในเวอร์ชันนี้จะทำการพุชเซิร์ฟเวอร์ ซึ่งทำให้เซิร์ฟเวอร์สามารถส่งทรัพยากรเพิ่มเติมไปยังไคลเอ็นต์โดยไม่ต้องรอคำขอที่ชัดเจน สิ่งนี้สามารถช่วยลดเวลาในการโหลดหน้าเว็บโดยการส่งเนื้อหาเชิงรุกที่เซิร์ฟเวอร์คาดการณ์ว่าไคลเอ็นต์จะต้องใช้

Header Compression:

  • HTTP/1.1: คำขอและการตอบกลับ HTTP แต่ละรายการมีส่วนหัวที่ให้ข้อมูลเมตาเกี่ยวกับคำขอหรือการตอบกลับ ส่วนหัวเหล่านี้อาจมีขนาดค่อนข้างใหญ่และอาจนำไปสู่การสิ้นเปลือง bandwidth มากเกินไป
  • HTTP/2: ใช้ HPACK (Header Compression for HTTP/2) เพื่อบีบอัดและส่งส่วนหัวอย่างมีประสิทธิภาพ ลดจำนวนข้อมูลที่จำเป็นต้องแลกเปลี่ยน และด้วยเหตุนี้จึงประสิทธิภาพดียิ่งขึ้น

การจัดลำดับความสำคัญ:

  • HTTP/1.1: ไม่มีการสนับสนุนในตัวสำหรับการจัดลำดับความสำคัญของคำขอ หมายความว่าคำขอทั้งหมดได้รับการปฏิบัติอย่างเท่าเทียมกัน และทรัพยากรที่สำคัญกว่านั้นไม่สามารถจัดลำดับความสำคัญได้อย่างชัดเจน
  • HTTP/2: ช่วยให้สามารถจัดลำดับความสำคัญของคำขอ ทำให้ไคลเอนต์สามารถระบุความสำคัญของทรัพยากรแต่ละรายการได้ ซึ่งจะช่วยในการเพิ่มประสิทธิภาพการโหลดทรัพยากรที่สำคัญและปรับปรุงเวลาในการโหลดหน้าเว็บโดยรวม

ความปลอดภัย:

  • ทั้ง HTTP/1.1 และ HTTP/2 สามารถใช้กลไกความปลอดภัยเดียวกัน เช่น TLS (Transport Layer Security) เพื่อเข้ารหัสข้อมูลระหว่างการส่ง อย่างไรก็ตาม เนื่องจาก HTTP/2 เป็นโปรโตคอลที่ใหม่กว่า จึงมักเกี่ยวข้องกับแนวทางปฏิบัติด้านความปลอดภัยที่ทันสมัยกว่า

สรุป

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

Was this article helpful?

Related Articles