Multipart-файлы, не multipart-запросы, по факту не нужны, можно создать несколько файлов с разными mime-типами. Но если очень хочется - то можно. Как это конкретно и правильно сделать, написано в упомянутом вами стандарте.
Вкратце, запрос таков:
(заголовки)
Content-Type: multipart/(ваш тип); boundary=(граница(при необходимости - в кавычках))
(заголовки)
(преамбула(игноируется))
--(граница)
(содержимое вложенной части)
--(граница)
(содержимое другой вложенной части)
--(граница)--
(эпилог, тоже игнорируется)