2013-12-02 7 views
10

Может ли некоторые эксперты объяснить различия между ними? это правда, что chunked является потоковым протоколом, а multipart - нет? в чем преимущество использования multipart?разница между multipart и chunked protoccol

спасибо.

+0

Просто догадаться, но я ожидал бы, что multipart будет содержать несколько отдельных частей, для нескольких разных содержимого и т. Д., Тогда как chunked дает несколько кусков для одного и того же объекта. Стоит посмотреть, пока вы ждете, когда кто-то более осведомлен, чтобы ответить :) –

ответ

3

Не является протоколом. Протокол HTTP - это протокол. Фактически, P в HTTP означает протокол.

Вы можете прочитать на фрагментированный и многочастном под Hypertext Transfer Protocol 1.1

Chunked является передачей кодирования в разделе 3.6 Передачи кодирований.

Multipart - это тип носителя, который содержится в разделе 3.7.2. Multipart Types представляет собой подраздел 3.7 Media Types.

Chunked также влияет на другие аспекты протокола, такие как длина контента, как указано в разделе 4.4, поскольку chunked должен использоваться, когда длина сообщения не может быть предопределена (в основном при доставке динамического содержимого).

От 14.41 (поле заголовка Transfer-Encoding)

Передаточный-Encoding поле общего заголовка указывает на то, что (если таковые имеются) тип преобразования был применен к телу сообщения, чтобы безопасно передавать это между отправителем и получателем. Этот отличается от кодирования содержимого тем, что передаточное кодирование является свойством сообщения, а не сущности.

Проще говоря, chunking - это то, как вы передаете блок данных, а multipart - это форма данных.

+0

спасибо Doog! так что также кажется, что мультипликатор для POST и chunked для GET? могу ли я сделать этот вывод? – user776635

+0

К сожалению, нет. Главное, что в запросе GET нет тела, но в ответе есть одно или несколько тел. Таким образом, вы можете получать многочастные ответы даже от GET. Не все клиенты могут его поддерживать, но это часть спецификаций HTTP. И снова, chunked занимается передачей, а не формой сообщения. Как правило, вы отправляете только сообщения multipart при отправке файлов через форму (обычно). Независимо от того, используете ли вы POST или GET, ответ может быть многочастным и/или разделенным. –

9

Более интуитивно,

Chunking способ отправки одного сообщения от сервера к клиенту, когда серверу не придется ждать, пока весь ответ генерироваться, но может отправить штуки (куски), как и когда будет в наличии. Теперь это происходит на уровне передачи данных и не обращает внимания на клиента. Соответственно это тип «Transfer-Encoding».

Хотя многочастность происходит на уровне приложения и интерпретируется на уровне логики приложения. Здесь сервер сообщает клиенту, что контент, даже если это один орган ответа, имеет разные логические части и может быть проанализирован соответствующим образом. Опять же, это настройка в «Content-Type», поскольку клиенты должны это знать.

Учитывая, что передача может быть разделена независимо от типов контента, при необходимости может передаваться многочастное HTTP-сообщение с использованием закодированного кодирования сервером.