Chunked överföringskodning är en dataöverföringsmekanism i Hypertext Transfer Protocol ( HTTP ) som gör att data på ett tillförlitligt sätt kan levereras från servern till klienten (oftast klientens webbläsare ) utan att behöva veta i förväg den exakta storleken på hela texten i HTTP-meddelandet. Detta uppnås genom att dela upp meddelandet i små bitar ( bitar ) och sedan överföra varje del med endast dess storlek (i hexadecimal ). Slutet på meddelandeöverföringen bestäms av närvaron av den sista delen med noll längd. Denna mekanism låter dig skicka dynamiskt genererade objekt för vilka du inte kan förbestämma storleken. Det har bara blivit tillgängligt sedan HTTP version 1.1 (HTTP/1.1).
Utan en chunkad överföringskodningsmekanism måste ett Content-Length- huvud anges med varje HTTP-paket så att klienten kan hitta slutet på meddelandet som överförs.
CRLF-avgränsaren används för att separera blockstorleksposter (del) från deras innehåll (som en sträng: "\r\n"; som byte i HEX -format : 0x0D, 0x0A). Blocklängden är storleken på blockinnehållet, CRLF-avgränsare för blockstorleksposterna ignoreras.
Schematisk representation: <blocklängd i HEX><CRLF><blockinnehåll><CRLF>
Det sista blocket är byggt enligt samma schema, därför har det följande form på grund av bristen på innehåll: 0<CRLF><CRLF>
Svar från servern med Transfer-Encoding: chunked. CRLFFör tydlighetens skull visas symbolerna som\r\n
HTTP/1.1 200 OK\r\n Innehållstyp: text/plain\r\n Överför-kodning: chunked\r\n Anslutning: keep-alive\r\n \r\n 9\r\n bit 1,\r\n 7\r\n bit 2\r\n 0\r\n \r\nInnehåller en textfil:
bit 1, bit 2