一般,HTTP協議中使用Content-Length這個頭來告知數據的長度。而後,在數據下行的過程當中,Content-Length的方式要預先在服務器中緩存全部數據,而後全部數據再一古腦兒地發給客戶端。 若是要一邊產生數據,一邊發給客戶端,WEB 服務器就須要使用"Transfer-Encoding: chunked"這樣的方式來代替Content-Length。 "Transfer-Encoding: chunked"是這樣編碼的: HTTP頭 \r\n \r\n --連續的兩個\r\n以後就是HTTP體了 16進制值表明的數據長度 \r\n 上面所指的數據長度 \r\n --每段數據結束後,以\r\n標識 16進製表明的第二段數據 \r\n XX長度的數據 \r\n ………… (反覆經過這樣的方式表示每次傳輸的數據長度) 0 --數據結束部分用0表示,而後是連續的兩個\r\n \r\n \r\n