Когда используется кодирование передачи по частям HTTP, зачем серверу записывать размер куска в байтах, а последующие данные куска заканчиваются CRLF?
Разве это не делает отправку двоичных данных "CRLF-unclean" и метод немного избыточным?
Что если в данных есть 0x0A, а затем где-то 0x0D (то есть они фактически являются частью данных)? Ожидается ли, что клиент будет придерживаться размера чанка, явно предоставленного в начале чанка, или дросселя на первом CRLF, с которым он сталкивается в данных?
Насколько я понимаю, ожидаемое поведение клиента состоит в том, чтобы просто взять размер порции, предоставленный сервером, перейти к следующей строке, а затем прочитать именно это количество байтов из следующих данных (CRLF или нет CRLF в них), а затем пропустить CRLF следуя данным и повторяйте процедуру до тех пор, пока не останется кусков. Это совместимое поведение? Если да, то в чем смысл CRLF после каждого блока данных? Читаемость?
Я провел поиск в Интернете по этому вопросу, а также ознакомился со спецификацией HTTP 1.1, но однозначный ответ, похоже, ускользает от меня.