Maison > Article > interface Web > La différence entre les deux méthodes de transmission de données de method=post/get dans la production de pages Form form_HTML/Xhtml_Web
Form propose deux méthodes de transmission de données : obtenir et publier. Bien qu’il s’agisse de deux manières de soumettre des données, elles sont très différentes dans la transmission réelle et peuvent avoir un impact sérieux sur les données. Bien que le conteneur Web ait masqué certaines différences entre les deux afin d'obtenir facilement des valeurs de variables, comprendre les différences entre les deux sera également utile dans la programmation future.
Les méthodes get et post dans Form correspondent respectivement aux méthodes GET et POST du protocole HTTP pendant le processus de transmission des données. Les principales différences entre les deux sont les suivantes :
1. Get est utilisé pour obtenir des données du serveur, tandis que Post est utilisé pour transférer des données vers le serveur.
2. Get ajoute les données du formulaire à l'URL pointée par l'action sous la forme variable=valeur, et les deux sont connectés à l'aide de "?", et chaque variable est connectée à l'aide de "&" ; Post place les données du formulaire dans le corps de données du formulaire et les transmet à l'URL pointée par l'action d'une manière correspondant aux variables et aux valeurs.
3. Get n'est pas sécurisé car pendant le processus de transmission, les données sont placées dans l'URL demandée, et de nombreux serveurs, serveurs proxy ou agents utilisateurs existants enregistreront l'URL de la demande dans des fichiers journaux, puis la placeront. quelque part afin que certaines informations privées puissent être vues par un tiers. De plus, les utilisateurs peuvent également voir les données soumises directement sur le navigateur, et certains messages internes du système seront affichés devant l'utilisateur. Toutes les opérations de publication sont invisibles pour les utilisateurs.
4. La quantité de données transmises par Get est faible, principalement parce qu'elle est limitée par la longueur de l'URL ; tandis que Post peut transmettre une grande quantité de données, vous ne pouvez donc utiliser Post que lors du téléchargement de fichiers (bien sûr). il y a une autre raison, qui sera discutée plus tard) mentionnée).
5. Get limite la valeur de l'ensemble de données dans le formulaire Form aux caractères ASCII ; tandis que Post prend en charge l'ensemble du jeu de caractères ISO10646.
6. Get est la méthode par défaut de Form.
Les données transmises via Post peuvent être correctement converties en chinois en définissant l'encodage alors que les données transmises par Get n'ont pas changé ; Nous devons y prêter attention dans les procédures futures.
______________________________________________________________________________________________
1. La méthode Get transmet les données de l'utilisateur via la requête URL, connecte les noms de chaque champ du formulaire et son contenu sous la forme d'une paire de chaînes et les place dans le programme pointé par l'attribut action. Après avoir entré l'URL, telle que http://www.mdm.com/test.asp?name=asd&password=sad, les données seront affichées directement sur l'URL, tout comme l'utilisateur clique. un lien ; la méthode Post utilise le mécanisme de post HTTP pour convertir le formulaire. Le nom de chaque champ et son contenu sont placés dans l'en-tête HTML (header) et sont envoyés au serveur pour traitement par le programme pointé par l'attribut action. Le programme lira les données du formulaire via la méthode d'entrée standard (stdin) et les ajoutera au serveur. Traitement
2. La méthode Get nécessite l'utilisation de Request.QueryString pour obtenir la valeur de la variable pendant la publication. La méthode utilise Request.Form pour accéder au contenu soumis
3. La quantité de données transmises par la méthode Get est très faible, généralement limitée à environ 2 Ko, mais l'efficacité d'exécution est meilleure que la méthode Post ; La quantité de données transférées par la méthode Post est relativement importante et elle attend que le serveur lise les données, mais il existe également une limite d'octets, qui consiste à éviter d'utiliser le serveur pour mener des attaques malveillantes. . Selon Microsoft, Microsoft a une limite sur le nombre maximum de données pouvant être reçues à l'aide de Request.Form(). Elle est de 80 Ko d'octets dans IIS 4 et de 100 Ko d'octets dans IIS 5
Suggestion : sauf si vous l'êtes. assurez-vous que les données que vous soumettez peuvent être soumises en même temps, veuillez essayer d'utiliser la méthode Post
4. La soumission de données via la méthode Get entraînera des problèmes de sécurité, comme une page de connexion, la soumission de données via la méthode Get , le nom d'utilisateur et le mot de passe apparaîtront sur l'URL. Si la page peut être mise en cache ou si d'autres personnes peuvent accéder à la machine du client, le compte et le mot de passe de l'utilisateur peuvent être obtenus à partir de l'historique. Il est donc recommandé d'utiliser la méthode Post pour soumettre le formulaire. ; la méthode Post est soumise Un problème courant avec la page de formulaire est que lorsque la page est actualisée, une boîte de dialogue apparaît
Recommandation : Pour des raisons de sécurité, il est recommandé d'utiliser Publier pour soumettre des données