Что такое '-' в multipart / form-data?

Я хочу задать вопрос о данных из нескольких частей / форм. Я нахожу заголовок http для составной записи и Content-Type: multipart / form-data; граница = -----...--- boundaryNumber. Я хочу спросить, сколько из - 'между borderNumber и' = '?

15
задан Timwi 18 August 2010 в 01:21
поделиться

4 ответа

Ни один - не является обязательным. Их может быть любое количество. На самом деле для меня загадка, почему пользовательские агенты обычно добавляют так много. Это, вероятно, традиционное, потому что в старые времена, когда люди все еще регулярно смотрели на фактический трафик протокола, это обеспечивало хорошее визуальное разделение. В настоящее время это бессмысленно.

Обратите внимание, однако, что когда вы используете границу в потоке, перед ней должны стоять два дефиса ( - ). Это часть протокола. Конечно, из-за того, что большинство пользовательских агентов используют много дефисов в границах, очень трудно увидеть это на примере.

Кроме того, последняя граница (которая отмечает конец сообщения) имеет префикс и с суффиксом двумя дефисами ( - ).

Итак, вы могли бы назвать свою границу OMGWTFPLZDIEKTHX , и тогда ваш трафик мог бы выглядеть так:

Content-Type: multipart/form-data; boundary=OMGWTFPLZDIEKTHX

--OMGWTFPLZDIEKTHX
Content-Type: text/plain

First part (plain text).
--OMGWTFPLZDIEKTHX
Content-Type: text/html

<html>Second part (HTML).</html>
--OMGWTFPLZDIEKTHX--
33
ответ дан 1 December 2019 в 01:16
поделиться

Это совершенно произвольно.

Точка границы - определить начало и конец ваших данных. Неважно, что это такое, пока оно не является частью контента.

1
ответ дан 1 December 2019 в 01:16
поделиться

Количество тире зависит от того, сколько их нужно. Оно может быть и нулевым, если хотите - просто большее количество тире делает границу более очевидной.

Граница состоит из строки, содержащей два тире, плюс все, что находится после "border=". Так что если в заголовке указано border=ABC, то граница выглядит так

--ABC
2
ответ дан 1 December 2019 в 01:16
поделиться

В определении границы дефисы не требуются. При использовании этой границы для разделения двух разных частей тела, вы должны начать с двух дефисов, за которыми следует ваша ранее определенная строка границы.

Это объясняется в RFC 1341 (MIME), и вы можете найти дополнительную информацию в разделе Multipart (по ссылке).

1
ответ дан 1 December 2019 в 01:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: