web-dev-qa-db-fra.com

Qu'est-ce qu'une demande multipart http?

Je suis en train d'écrire des applications iPhone depuis un certain temps, d'envoyer des données au serveur, de recevoir des données (via le protocole HTTP), sans trop y penser. La plupart du temps, je suis théoriquement familiarisé avec le processus, mais la partie qui m’est moins familière est la requête HTTP multipart. Je connais sa structure de base, mais son noyau m'échappe.

Il semble que chaque fois que j'envoie quelque chose de différent du texte brut (comme des photos, de la musique), je dois utiliser une demande en plusieurs parties. Quelqu'un peut-il m'expliquer brièvement pourquoi il est utilisé et quels sont ses avantages?

Si je l'utilise, pourquoi est-ce un meilleur moyen d'envoyer des photos de cette façon?

266
MegaManX

Une demande HTTP en plusieurs parties est une demande HTTP que les clients HTTP construisent pour envoyer des fichiers et des données à un serveur HTTP. Il est couramment utilisé par les navigateurs et les clients HTTP pour télécharger des fichiers sur le serveur.

253
Iggy

Comme l'indique la spécification officielle ( https://www.w3.org/Protocols/rfc1341/7_2_Multipart.html ), " un ou plusieurs différents ensembles de données sont combinés dans un seul et même corps ". Ainsi, lorsque les photos et la musique sont traitées comme des messages en plusieurs parties, comme mentionné dans la question, il existe probablement également des métadonnées en texte brut associées, ce qui rend la demande contenant différents types de données (binaire, texte), ce qui implique l'utilisation de plusieurs parties.

16
csonti