Browse Source

Add a multipart intro chapter to the guide

Loïc Hoguin 11 years ago
parent
commit
642630fea1
2 changed files with 54 additions and 1 deletions
  1. 53 0
      guide/multipart_intro.md
  2. 1 1
      guide/toc.md

+ 53 - 0
guide/multipart_intro.md

@@ -0,0 +1,53 @@
+Introduction to multipart
+=========================
+
+Multipart originates from MIME, an Internet standard that
+extends the format of emails. Multipart messages are a
+container for parts of any content-type.
+
+For example, a multipart message may have a part
+containing text and a second part containing an
+image. This is what allows you to attach files
+to emails.
+
+In the context of HTTP, multipart is most often used
+with the `multipart/form-data` content-type. This is
+the content-type you have to use when you want browsers
+to be allowed to upload files through HTML forms.
+
+Multipart is of course not required for uploading
+files, it is only required when you want to do so
+through HTML forms.
+
+Structure
+---------
+
+A multipart message is a list of parts. Parts may
+contain either a multipart message or a non-multipart
+content-type. This allows parts to be arranged in a
+tree structure, although this is a rare case as far
+as the Web is concerned.
+
+Form-data
+---------
+
+In the normal case, when a form is submitted, the
+browser will use the `application/x-www-form-urlencoded`
+content-type. This type is just a list of keys and
+values and is therefore not fit for uploading files.
+
+That's where the `multipart/form-data` content-type
+comes in. When the form is configured to use this
+content-type, the browser will use one part of the
+message for each form field. This means that a file
+input field will be sent in its own part, but the
+same applies to all other kinds of fields.
+
+A form with a text input, a file input and a select
+choice box will result in a multipart message with
+three parts, one for each field.
+
+The browser does its best to determine the content-type
+of the files it sends this way, but you should not
+rely on it for determining the contents of the file.
+Proper investigation of the contents is recommended.

+ 1 - 1
guide/toc.md

@@ -39,7 +39,7 @@ REST
 Multipart
 ---------
 
- *  Understanding multipart
+ *  [Introduction to multipart](multipart_intro.md)
  *  [Multipart requests](multipart_req.md)
  *  Multipart responses