Multipart is a way of forming HTTP requests or responses to contain multiple distinct parts.
Such an approach allows a request to contain multiple different pieces of data with potentially conflicting data types in a single response payload.
It is typically used either in HTML forms, or when uploading multiple files.
How multipart messages work¶
The structure of a multipart request is typically consistent of:
- A Header: Typically
multipart/form-data;boundary=<boundary>, This defines the HTTP message as being multipart, as well as defining the separator used to distinguish the different parts.
- 1 or more parts:
- Part header: typically
content-disposition: mime/type; name="<fieldname>"(
mime/typeshould be replaced with the actual mime-type), can also contain a
filenameproperty (separated from the rest by a
;and structured similarly to the
Multipart messages in Crow¶
Crow supports multipart requests and responses though
A message can be created either by defining the headers, boundary, and individual parts and using them to create the message. or simply by reading a
Once a multipart message has been made, the individual parts can be accessed throughout
parts is an
Part headers are organized in a similar way to request and response headers, and can be retrieved via
crow::multipart::get_header_object("header-key"). This function returns a
The message's individual body parts can be accessed by name using
For more info on Multipart messages, go here