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

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

Ответ 1

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

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

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

Итак, вы можете назвать свою границу 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--

Ответ 2

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

Граница состоит из строки, содержащей две тире плюс все после "border =". Поэтому, если ваш заголовок сказал boundary=ABC, граница выглядит как

--ABC

Ответ 3

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

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

Ответ 4

Это абсолютно произвольно.

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