transfer-encoding chunked 会将数据分片,每一个非空的块都以该块包含数据的字节数(字节数以十六进制表示)开始,跟随一个CRLF (回车及换行),然后是数据本身,最后块CRLF结束。那么问题来了:如果数据本身包含\r\n,怎样区别?
在每段数据块前,使用 “[数据块长度]\r\n” 来标记接下来数据块的长度最后一个数据块的长度必须为0,也可以理解为http报文以0\r\n\r\n来结尾因此可以区分数据中的\r\n和控制符\r\n