Maison > Article > développement back-end > Quelle est la différence entre get et post en php ?
La principale différence entre Get et Post est que Get transmet les données via Url, tandis que Post ne permet pas aux utilisateurs de voir les informations spécifiques transmises. Cette différence détermine l'utilisation des deux. La méthode Get est principalement utilisée pour la recherche, tandis que la méthode Post est principalement utilisée pour transmettre les informations sur les opérations de l'utilisateur au serveur. Voici les différences détaillées entre Get et Post :
La sécurité de GET et POST
1 GET est demandée via une URL, qui peut être vue directement et transmise. texte brut.
2. Le POST est demandé via l'en-tête de la requête, qui peut être vu par les outils de développement ou par la capture de paquets, et est également en texte clair.
3. Les requêtes GET seront enregistrées dans l'historique du navigateur et pourront également être enregistrées dans le journal Web.
Obtenir la soumission, les données demandées suivront l'URL (positionnement uniforme des ressources), faible sécurité
Publier la soumission, mettre les données soumises dans le corps du package http, sécurité élevée
Taille des données de GET et POST
GET : des navigateurs et des serveurs spécifiques ont des restrictions sur la longueur de l'URL. Par exemple, la limite d'IE sur la longueur de l'URL est de 2 083 octets (2 K+35). Pour les autres navigateurs, tels que Netscape, FireFox, etc., il n'y a théoriquement aucune limite de longueur, et la limite dépend du support du système d'exploitation. La quantité de données transmises par Get est faible car limitée par la longueur de l'URL, mais elle est plus efficace
POST : Puisque la valeur n'est pas transmise via l'URL, les données ne sont théoriquement pas limitées ; . Post peut transmettre une grande quantité de données, vous ne pouvez donc utiliser la méthode Post que lors du téléchargement de fichiers
Le format de caractères des données transmises est différent
La valeur ; de l'ensemble de données du formulaire de restriction d'obtention doit être constitué de caractères ASCII qui ne peuvent pas être définis via request.setCharacterEncoding("utf-8");.
post prend en charge l'ensemble du jeu de caractères ISO10646 et peut afficher correctement les caractères chinois via request.setCharacterEncoding("utf-8");.
Le côté serveur obtient les données de différentes manières
Obtenez du côté serveur $_GET;
Publiez du côté serveur $_POST
GET est idempotent, POST n'est pas idempotent
L'impuissance signifie que la même méthode de requête a le même effet si elle est exécutée plusieurs fois et exécutée une seule fois.
1. Selon les spécifications RFC, PUT, DELETE et les méthodes de sécurité sont toutes idempotentes. Bien qu'il s'agisse d'une spécification, rien ne garantit que l'implémentation du serveur soit idempotente.
2. L'introduction de l'idempotence vise principalement à gérer la situation où la même demande est envoyée à plusieurs reprises, comme la perte de la connexion avant que la demande ne réponde. Si la méthode est idempotente, vous pouvez renvoyer la demande en toute sécurité. C'est également la raison pour laquelle le navigateur avertira l'utilisateur lorsqu'il rencontrera POST lors d'une sauvegarde/actualisation : la sémantique POST n'est pas idempotente et des requêtes répétées peuvent entraîner des conséquences inattendues.
3. Par exemple, dans le scénario de Weibo, la sémantique de GET sera utilisée dans le scénario "Regardez les 20 dernières publications Weibo sur ma Timeline", tandis que la sémantique de POST sera utilisée dans le scénario de " Dans un scénario comme publier sur Weibo, commenter et aimer.
Pour plus de connaissances sur PHP, veuillez visiter le site Web chinois de php !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!