Я хочу задать вопрос о данных из нескольких частей / форм. Я нахожу заголовок http для составной записи и Content-Type: multipart / form-data; граница = -----...--- boundaryNumber. Я хочу спросить, сколько из - 'между borderNumber и' = '?
Ни один -
не является обязательным. Их может быть любое количество. На самом деле для меня загадка, почему пользовательские агенты обычно добавляют так много. Это, вероятно, традиционное, потому что в старые времена, когда люди все еще регулярно смотрели на фактический трафик протокола, это обеспечивало хорошее визуальное разделение. В настоящее время это бессмысленно.
Обратите внимание, однако, что когда вы используете границу в потоке, перед ней должны стоять два дефиса ( -
). Это часть протокола. Конечно, из-за того, что большинство пользовательских агентов используют много дефисов в границах, очень трудно увидеть это на примере.
Кроме того, последняя граница (которая отмечает конец сообщения) имеет префикс и с суффиксом двумя дефисами ( -
).
Итак, вы могли бы назвать свою границу 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--
Это совершенно произвольно.
Точка границы - определить начало и конец ваших данных. Неважно, что это такое, пока оно не является частью контента.
Количество тире зависит от того, сколько их нужно. Оно может быть и нулевым, если хотите - просто большее количество тире делает границу более очевидной.
Граница состоит из строки, содержащей два тире, плюс все, что находится после "border=". Так что если в заголовке указано border=ABC
, то граница выглядит так
--ABC
В определении границы дефисы не требуются. При использовании этой границы для разделения двух разных частей тела, вы должны начать с двух дефисов, за которыми следует ваша ранее определенная строка границы.
Это объясняется в RFC 1341 (MIME), и вы можете найти дополнительную информацию в разделе Multipart (по ссылке).