Quelle est la différence entre les données de formulaire, x-www-form-urlencoded et des matières premières dans le Facteur de Chrome application?
Je suis en utilisant le Facteur extension Chrome pour tester un service web. Il y a trois options disponibles pour la saisie de données. Je suppose que le raw est pour l'envoi de JSON. Quelle est la différence entre les deux autres, données de formulaire et x-www-form-urlencoded?
- Au jour d'aujourd'hui il y a une 4ème option pour publier des données en facteur outil -
binary
. - dev.d'/sidthesloth92/...
Vous devez vous connecter pour publier un commentaire.
Ce sont de Forme différente des types de contenu définis par le W3C.
Si vous souhaitez envoyer un texte simple/données ASCII, puis x-www-form-urlencoded fonctionne. C'est la valeur par défaut.
Mais si vous devez envoyer des textes non-ASCII ou binaires volumineux de données, la de données de formulaire est pour que.
Vous pouvez utiliser Raw si vous voulez envoyer du texte brut ou au format JSON ou tout autre type de chaîne. Comme son nom l'indique, Facteur envoie de votre première chaîne de données comme il est sans modifications. Le type de données que vous envoyez peut être définie à l'aide de l'entête content-type dans la liste déroulante.
Binaire peut être utilisé lorsque vous souhaitez joindre non-données textuelles à la demande, par exemple, un fichier vidéo/audio, des images, ou tout autre fichier de données binaires.
Consulter ce lien pour en savoir plus:
Les formes dans les documents HTML
C'est ce qui explique mieux:
Facteur docs
Mise à JOUR
Comme l'a souligné VKK, le WHATWG spec dire urlencoded est le codage par défaut le type de formes.
Content-Type: application/json
l'en-tête; et brut les données saisies sous forme de json comme{foo: bar}
avec la mêmeContent-Type: application/json
en-tête?multipart/form-data
Note. Veuillez consulter RFC2388 pour plus d'informations sur l'upload de fichiers, y compris vers l'arrière des problèmes de compatibilité, la relation entre "multipart/form-data" et d'autres types de contenu, des problèmes de performances, etc.
Veuillez consulter l'annexe pour plus d'informations sur les questions de sécurité pour les formulaires.
Le type de contenu "application/x-www-form-urlencoded" est inefficace pour l'envoi de grandes quantités de données binaires ou texte contenant des caractères non-ASCII. Le contenu de type "multipart/form-data" doit être utilisé pour l'envoi de formulaires qui contiennent des fichiers, des données non-ASCII, et des données binaires.
Le contenu de type "multipart/form-data" suit les règles de tous les multipart MIME flux de données comme indiqué dans RFC2045. La définition de "multipart/form-data" est disponible à l' [IANA] registre.
Un "multipart/form-data" message contient une série de parties, chacune représentant un contrôle efficace. Les pièces sont envoyées à l'agent de traitement dans le même ordre que les contrôles correspondants apparaissent dans le document de flux. Les limites de l'élément ne doit pas se produire dans des données; comment cela se fait se trouve en dehors du champ d'application de la présente spécification.
Comme avec tous les types MIME multipart, chaque partie a une option "Content-Type" en-tête par défaut "text/plain". Les agents utilisateurs devraient fournir le "Content-Type" en-tête, accompagné d'un "jeu de caractères" paramètre.
application/x-www-form-urlencoded
C'est le type de contenu par défaut. Les formulaires soumis à ce type de contenu doit être codé comme suit:
Contrôle noms et les valeurs sont échappés. Des espaces sont remplacés par des
+', and then reserved characters are escaped as described in [RFC1738], section 2.2: Non-alphanumeric characters are replaced by
%HH', un signe de pourcentage, et de deux chiffres hexadécimaux représentant le code ASCII du caractère. Les sauts de ligne sont représentés comme "CR LF" paires (c'est à dire,%0D%0A').
=' et de paires nom/valeur sont séparés les uns des autres par " &".The control names/values are listed in the order they appear in the document. The name is separated from the value by
application/x-www-form-urlencoded
le corps du message HTTP envoyées au serveur est essentiellement un géant de la chaîne de requête -- paires nom/valeur sont séparés par une esperluette (&), et les noms sont séparés de valeurs par le symbole égal (=). Un exemple de ceci serait:La type de contenu "application/x-www-form-urlencoded" est inefficace pour l'envoi de grandes quantités de données binaires ou texte contenant des caractères non-ASCII. Le contenu de type "multipart/form-data" doit être utilisé pour l'envoi de formulaires qui contiennent des fichiers, des données non-ASCII, et des données binaires.
Voici quelques exemples supplémentaires voir le texte brut que le Facteur passe dans la demande. Vous pouvez voir cela en ouvrant le Facteur de la console:
de données de formulaire
En-tête
Corps
x-www-form-urlencoded
En-tête
Corps
Raw text/plain
En-tête
Corps
Raw json
En-tête
Corps