fbpx
วิกิพีเดีย

การเข้ารหัสขนส่งเป็นชิ้นส่วน

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

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

รูปแบบ

เครื่องแม่ข่ายจะส่งส่วนหัวของการตอบรับ Transfer-Encoding โดยกำหนดค่าเป็น chunked แต่ละชิ้นส่วนจะขึ้นต้นด้วยขนาดของข้อมูลในชิ้นส่วนนั้นเป็นเลขฐานสิบหก ตามด้วยอักขระปัดแคร่ (carriage return) อักขระป้อนบรรทัด (line feed) และข้อมูลในส่วนนั้น ในการนำไปใช้บางอย่าง จะมีอักขระช่องว่าง (0x20) เพิ่มเข้ามาระหว่างขนาดของชิ้นส่วน กับอักขระปัดแคร่ป้อนบรรทัด และเมื่อไม่มีข้อมูลที่จะส่งต่อแล้ว ชิ้นส่วนตอบรับสุดท้ายจะจบด้วยขนาดที่เท่ากับ 0

ตัวอย่างข้อความตอบรับ

HTTP/1.1 200 OK Content-Type: text/plain Transfer-Encoding: chunked 23 This is the data in the first chunk 1A and this is the second one 0 

แหล่งข้อมูลอื่น

  • RFC 2616 ส่วนที่ 3.6.1

การเข, ารห, สขนส, งเป, นช, นส, วน, งกฤษ, chunked, transfer, encoding, เป, นว, หน, งของเว, บเซ, ฟเวอร, เอชท, ในการส, งถ, ายข, อม, ลไปย, งโปรแกรมประย, กต, ของเคร, องล, กข, าย, งม, กจะเป, นเว, บเบราว, เซอร, ปกต, แล, วข, อม, ลท, ได, บจากข, อความตอบร, บเอชท, จะถ, ก. karekharhskhnsngepnchinswn xngkvs chunked transfer encoding epnwithihnungkhxngewbesirfewxrexchthithiphi inkarsngthaykhxmulipyngopraekrmprayuktkhxngekhruxnglukkhay sungmkcaepnewbebrawesxr pktiaelwkhxmulthiidrbcakkhxkhwamtxbrbexchthithiphicathuksngmaepnkhxmulchinediyw sungkhnadkhxngenuxhannidaesdngiwinswnhw Content Lengthkhnadkhxngkhxmulepnsingsakhy ephraawaekhruxnglukkhaycaepntxngthrabwa emuxirkhxkhwamtxbrbcasinsudaelaemuxirkhxkhwamthdipcatamma aeladwykarichkarekharhskhnsngepnchinswn khxmulcathukaebngxxkepnblxkyxy aelathuksngxxkipepnhnunghruxhlay chinswn chunk dngnnekhruxngaemkhayxacerimsngkhxmulkxnthimncathrabwakhnadrwmthnghmdkhxngenuxhaepnethaid bxykhrngthikhnadkhxngblxkcaethaknhmd aetkimaenesmxipbangkhrngekhruxngihbrikarexchthithiphiichkarbibxdkhxmul gzip hrux deflate ephuxldewlathiichinkarsngthaykhxmul aemwakarekharhskhnsngepnchinswnsamarthichidkbthrphyakrthibibxdephuxldprimanchinswnthisng aethlngcakaebngaelw chinswntang thiimidmikarbibxdintwexngkcaimmipraoychnxair aethmyngthaihesirfewxresiyewlainkarbibxdxyangetmthi aelwkhxmulbibxdthixxkmacungkhxythuktdaebngtamaephn swnkrnithimikartdaebngepnchinswnkxnaelwkhxynaipbibxd mikhxditrngthisamarthbibxdidthnthiinkhnathikhxmulkalngsng ephraakhxmulthinamabibxdmikhnadelk aetkmikhxesiykhuximsamarththrabthungkhnadkhxmulsudthaythibibxdaelwidodyngayrupaebb aekikhekhruxngaemkhaycasngswnhwkhxngkartxbrb Transfer Encodingodykahndkhaepn chunked aetlachinswncakhuntndwykhnadkhxngkhxmulinchinswnnnepnelkhthansibhk tamdwyxkkhrapdaekhr carriage return xkkhrapxnbrrthd line feed aelakhxmulinswnnn inkarnaipichbangxyang camixkkhrachxngwang 0x20 ephimekhamarahwangkhnadkhxngchinswn kbxkkhrapdaekhrpxnbrrthd aelaemuximmikhxmulthicasngtxaelw chinswntxbrbsudthaycacbdwykhnadthiethakb 0twxyangkhxkhwamtxbrb aekikhHTTP 1 1 200 OK Content Type text plain Transfer Encoding chunked 23 This is the data in the first chunk 1A and this is the second one 0aehlngkhxmulxun aekikhRFC 2616 swnthi 3 6 1ekhathungcak https th wikipedia org w index php title karekharhskhnsngepnchinswn amp oldid 4701692, wikipedia, วิกิ หนังสือ, หนังสือ, ห้องสมุด,

บทความ

, อ่าน, ดาวน์โหลด, ฟรี, ดาวน์โหลดฟรี, mp3, วิดีโอ, mp4, 3gp, jpg, jpeg, gif, png, รูปภาพ, เพลง, เพลง, หนัง, หนังสือ, เกม, เกม