Content Compression ของ http server

หน้าแรก > Software > Content Compression ของ http server

Content Compression ของ http server (159)

ในการทำงานของ http server ที่ทำการส่ง hypertext มายัง client นั้นบางครั้งสายอักษร (String) จำนวนมากทำให้ใช้งาน bandwidth มาก และยิ่งถ้ามีช่องทางที่แคบด้วยแล้วการส่งข้อมูลก็จะช้าลงด้วย ดังนั้นใน http เวอร์ชั่น 1.1 จึงมีการประกาศการบีบอัดสายอักษรเหล่านี้ด้วย ในเอกสาร RFC 2616 โดยเป็นความสามารถที่เพิ่มเข้ามาในทั้งส่วนของ http server และ http client

การทำงานก็เหมือนการบีบอัดไฟล์ในระบบคอมพิวเตอร์ปกติ แต่จะมีอัตราการบีบอัดที่ต่ำกว่า เพื่อใช้เวลาในการบีบอัดเร็วขึ้น การบีบอัดตามมาตรฐาน http มีอยู่ 3 แบบคือ

  1. GZip (GNU Zip) มีการประกาศรูปแบบใน RFC1952 เป็นการเข้ารหัสแบบ Lempel-Ziv (LZ77) พร้อมตรวจสอบด้วย CRC ขนาด 32 บิต
  2. compress เป็นการประยุกต์ใช้งาน compress ใน UNIX ซึ่งเป็นแบบ Lempel-Zip-Welch (LZW)
  3. deflate มีการประกาศรูปแบบใน RFC1950 เป็นการเข้ารหัสด้วย zlib และผสมกับ deflate ซึ่งประกาศใน RFC1951

โดย http server ที่รองรับการบีบอัดได้แก่

  • Internet Information Service (IIS) รองรับทั้ง gzip และ deflate
  • Apache รองรับทั้ง gzip และ deflate
  • Resin รองรับ gzip
  • Lighttpd รองรับ gzip และ deflate
  • Nginx รองรับ gzip และ deflate
  • Sun Java Web Server รองรับ gzip
  • Zeus รองรับ gzip
  • Cherokee รองรับ gzip และ deflate
การใช้งานการบีบอัดนั้นช่วยในการลด Bandwidth ลงได้มาก

จากรูปเป็นการทดลองปิดการใช้งาน gzip ใน nginx เป็นเวลา 2 วันจะเห็นว่า connection ปริมาณเท่าเดิม แต่ในช่วงที่ทำการทดลองปิด gzip นั้นปริมาณ Bandwidth เพิ่มขึ้นมากหลายเท่าตัว ซึ่ง gzip นั้นช่วยลด bandwidth ลงได้หลายเท่าตัวนั่นเอง
เขียนเมื่อ 2009.10.19 โดย Sheroku
คำเตือนคำเตือน เนื้อหาต่างๆ ในบทความ รวมถึงรูปภาพทั้งหมดในบทความนี้ เป็นความเห็นส่วนตัวของผู้เขียนแต่ละคน ซึ่งแต่ละคนได้ทำการลงทะเบียน และเขียนบทความลงใน Modoeye Articles นี้โดยไม่มีค่าธรรมเนียมใดๆ บทความเหล่านี้เป้าหมายเพื่อการศึกษา และความบันเทิงเท่านั้น การนำส่วนหนึ่งส่วนใดของบทความไปใช้งาน ควรทำการอ้างอิงถึงผู้เขียนและแหล่งที่มาด้วย