Могут ли некоторые эксперты объяснить различия между ними? Правда ли, что chunked — это потоковый протокол, а multipart — нет? В чем преимущество использования multipart?
разница между составным и фрагментированным протоколом
Ответы (2)
Более интуитивно,
Фрагментация — это способ отправки одного сообщения с сервера клиенту, при котором серверу не нужно ждать, пока будет сгенерирован весь ответ, а можно отправлять фрагменты (фрагменты) по мере их доступности. Теперь это происходит на уровне передачи данных и незаметно для клиента. Соответственно, это тип 'Transfer-Encoding'.
В то время как Multi-part происходит на уровне приложения и интерпретируется на уровне логики приложения. Здесь сервер сообщает клиенту, что содержимое, даже если это одно тело ответа, имеет разные логические части и может быть соответствующим образом проанализировано. Опять же, это настройка «Content-Type», поскольку клиенты должны ее знать.
Учитывая, что передача может быть разделена на части независимо от типов контента, HTTP-сообщение, состоящее из нескольких частей, может быть передано сервером с использованием кодирования по частям, если это необходимо.
Тоже не протокол. HTTP - это протокол. На самом деле, P в HTTP означает протокол.
Вы можете узнать больше о фрагментации и составных частях в разделе Протокол передачи гипертекста 1.1.
Chunked — это кодирование передачи, описанное в разделе 3.6 Кодирование передачи.
Multipart — это тип носителя, описанный в разделе 3.7.2 Multipart Types, подразделе 3.7 Media Types.
Разделение на фрагменты также влияет на другие аспекты протокола, такие как длина содержимого, как указано в 4.4, поскольку фрагментирование должно использоваться, когда длина сообщения не может быть определена заранее (в основном при доставке динамического содержимого).
С 14.41 (поле заголовка Transfer-Encoding)
Поле общего заголовка Transfer-Encoding указывает, какой тип преобразования (если таковой имеется) был применен к телу сообщения для его безопасной передачи между отправителем и получателем. Это отличается от кодирования содержимого тем, что кодирование переноса является свойством сообщения, а не объекта.
Проще говоря, фрагментация — это то, как вы передаете блок данных, а составность — это форма данных.