ผลต่างระหว่างรุ่นของ "การเข้ารหัสขนส่งเป็นชิ้นส่วน"

จากวิกิพีเดีย สารานุกรมเสรี
เนื้อหาที่ลบ เนื้อหาที่เพิ่ม
Octahedron80 (คุย | ส่วนร่วม)
หน้าใหม่: '''การเข้ารหัสขนส่งเป็นชิ้นส่วน''' ({{lang-en|chunked transfer encoding}}) เป็นวิธีหนึ่ง…
 
Octahedron80 (คุย | ส่วนร่วม)
ไม่มีความย่อการแก้ไข
บรรทัด 1: บรรทัด 1:
'''การเข้ารหัสขนส่งเป็นชิ้นส่วน''' ({{lang-en|chunked transfer encoding}}) เป็นวิธีหนึ่งของ[[เว็บเซิร์ฟเวอร์]][[เอชทีทีพี]] ในการส่งถ่าย[[ข้อมูล]]ไปยัง[[โปรแกรมประยุกต์]]ของ[[เครื่องลูกข่าย]] (ซึ่งมักจะเป็น[[เว็บเบราว์เซอร์]]) ปกติแล้วข้อมูลที่ได้รับจากข้อความตอบรับเอชทีทีพีจะถูกส่งมาเป็นข้อมูลชิ้นเดียว ซึ่งขนาดของเนื้อหานั้นได้แสดงไว้ในส่วนหัว <tt>Content-Length<tt> ขนาดของข้อมูลเป็นสิ่งสำคัญ เพราะว่าเครื่องลูกข่ายจำเป็นต้องทราบว่า เมื่อไรข้อความตอบรับจะสิ้นสุดและเมื่อไรข้อความถัดไปจะตามมา และด้วยการใช้การเข้ารหัสขนส่งเป็นชิ้นส่วน ข้อมูลจะถูกแบ่งออกเป็นบล็อกย่อย ๆ และถูกส่งออกไปเป็นหนึ่งหรือหลาย "ชิ้นส่วน" (chunk) ดังนั้นเครื่องแม่ข่ายอาจเริ่มส่งข้อมูลก่อนที่มันจะทราบว่าขนาดรวมทั้งหมดของเนื้อหาเป็นเท่าใด บ่อยครั้งที่ขนาดของบล็อกจะเท่ากันหมด แต่ก็ไม่แน่เสมอไป
'''การเข้ารหัสขนส่งเป็นชิ้นส่วน''' ({{lang-en|chunked transfer encoding}}) เป็นวิธีหนึ่งของ[[เว็บเซิร์ฟเวอร์]][[เอชทีทีพี]] ในการส่งถ่าย[[ข้อมูล]]ไปยัง[[โปรแกรมประยุกต์]]ของ[[เครื่องลูกข่าย]] (ซึ่งมักจะเป็น[[เว็บเบราว์เซอร์]]) ปกติแล้วข้อมูลที่ได้รับจากข้อความตอบรับเอชทีทีพีจะถูกส่งมาเป็นข้อมูลชิ้นเดียว ซึ่งขนาดของเนื้อหานั้นได้แสดงไว้ในส่วนหัว <tt>Content-Length<tt> ขนาดของข้อมูลเป็นสิ่งสำคัญ เพราะว่าเครื่องลูกข่ายจำเป็นต้องทราบว่า เมื่อไรข้อความตอบรับจะสิ้นสุดและเมื่อไรข้อความถัดไปจะตามมา และด้วยการใช้การเข้ารหัสขนส่งเป็นชิ้นส่วน ข้อมูลจะถูกแบ่งออกเป็นบล็อกย่อย ๆ และถูกส่งออกไปเป็นหนึ่งหรือหลาย "ชิ้นส่วน" (chunk) ดังนั้นเครื่องแม่ข่ายอาจเริ่มส่งข้อมูลก่อนที่มันจะทราบว่าขนาดรวมทั้งหมดของเนื้อหาเป็นเท่าใด บ่อยครั้งที่ขนาดของบล็อกจะเท่ากันหมด แต่ก็ไม่แน่เสมอไป

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

รุ่นแก้ไขเมื่อ 21:29, 17 พฤษภาคม 2552

การเข้ารหัสขนส่งเป็นชิ้นส่วน (อังกฤษ: chunked transfer encoding) เป็นวิธีหนึ่งของเว็บเซิร์ฟเวอร์เอชทีทีพี ในการส่งถ่ายข้อมูลไปยังโปรแกรมประยุกต์ของเครื่องลูกข่าย (ซึ่งมักจะเป็นเว็บเบราว์เซอร์) ปกติแล้วข้อมูลที่ได้รับจากข้อความตอบรับเอชทีทีพีจะถูกส่งมาเป็นข้อมูลชิ้นเดียว ซึ่งขนาดของเนื้อหานั้นได้แสดงไว้ในส่วนหัว Content-Length ขนาดของข้อมูลเป็นสิ่งสำคัญ เพราะว่าเครื่องลูกข่ายจำเป็นต้องทราบว่า เมื่อไรข้อความตอบรับจะสิ้นสุดและเมื่อไรข้อความถัดไปจะตามมา และด้วยการใช้การเข้ารหัสขนส่งเป็นชิ้นส่วน ข้อมูลจะถูกแบ่งออกเป็นบล็อกย่อย ๆ และถูกส่งออกไปเป็นหนึ่งหรือหลาย "ชิ้นส่วน" (chunk) ดังนั้นเครื่องแม่ข่ายอาจเริ่มส่งข้อมูลก่อนที่มันจะทราบว่าขนาดรวมทั้งหมดของเนื้อหาเป็นเท่าใด บ่อยครั้งที่ขนาดของบล็อกจะเท่ากันหมด แต่ก็ไม่แน่เสมอไป

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