web-dev-qa-db-fra.com

Quelles règles s'appliquent à la limite MIME?

Lorsque vous écrivez MIME, vous séparez différents morceaux de votre message avec une certaine limite. J'ai échoué pour une raison quelconque à trouver une documentation expliquant cette limite, mais voici ce que j'ai rassemblé à partir d'exemples:

  1. La limite peut être n'importe quelle chaîne de lettres et de chiffres, i. e. "d29a0c638b540b23e9a29a3a9aebc900aeeb6a82".

  2. Il n'y a pas de règles pour générer la frontière, vous pouvez simplement ajouter le nom de votre bien-aimé, et voilà, vous avez votre frontière.

  3. Si vous envoyez MIME sur HTTP, vous devez ajouter un en-tête "Content-Type" spécifiant que vous le faites, et votre limite, le contenu d'un en-tête peut ressembler à ceci:

    multipart/form-data; limite = d29a0c638b540b23e9a29a3a9aebc900aeeb6a82

  4. Dans le corps de votre message, la limite doit être précédée de "-", comme:

    --d29a0c638b540b23e9a29a3a9aebc900aeeb6a82

Mais en suivant ces règles (et cette réponse utile), je n'ai pas réussi à générer POST que le serveur accepterait. Suis-je en train de manquer quelque chose?

37
Septagram

syntaxe d'une frontière est:

 boundary := 0*69<bchars> bcharsnospace
 bchars := bcharsnospace / " "
 bcharsnospace := DIGIT / ALPHA / "'" / "(" / ")" /
                  "+" / "_" / "," / "-" / "." /
                  "/" / ":" / "=" / "?"

Et le corps d'une entité en plusieurs parties a la syntaxe (uniquement les parties importantes):

 multipart-body := [preamble CRLF]
                   dash-boundary transport-padding CRLF
                   body-part *encapsulation
                   close-delimiter transport-padding
                   [CRLF epilogue]
 dash-boundary := "--" boundary
 encapsulation := delimiter transport-padding
                  CRLF body-part
 delimiter := CRLF dash-boundary
 close-delimiter := delimiter "--"

Le précédent -- est obligatoire pour chaque limite utilisée dans le message et la fin -- est obligatoire pour la limite de fermeture ( délimiteur de fermeture ). Ainsi, un corps en plusieurs parties avec trois parties du corps avec boundary comme limite peut ressembler à ceci:

--boundary
1. body-part
--boundary
2. body-part
--boundary
3. body-part
--boundary--
61
Gumbo