Maison interface Web tutoriel HTML Analyser la différence entre les demandes de publication et d'obtention

Analyser la différence entre les demandes de publication et d'obtention

Jul 20, 2017 pm 04:03 PM
http post 区别

Deux méthodes de requête HTTP couramment utilisées : post et get
get : requête à partir de la ressource spécifiée. La longueur des données est limitée (2 048 caractères) et peut être mise en cache et conservée dans l'historique du navigateur, ce qui la rend moins sécurisée. Non applicable lors de l'envoi d'informations sensibles telles que des mots de passe.

post : Soumettez les données à traiter à la ressource spécifiée. La longueur des données est illimitée, ne peut pas être mise en cache, ne peut pas être enregistrée dans l'historique du navigateur et est hautement sécurisée. POST est plus stable et fiable que GET.

1. Selon la spécification HTTP, GET est utilisé pour l'acquisition d'informations et doit être sûr et idempotent.

  (1). Le soi-disant coffre-fort signifie que l'opération est utilisée pour obtenir des informations plutôt que pour modifier des informations. En d’autres termes, les requêtes GET ne devraient généralement pas avoir d’effets secondaires. C'est-à-dire qu'il obtient uniquement des informations sur la ressource, tout comme une requête de base de données, il ne modifiera ni n'ajoutera de données et n'affectera pas l'état de la ressource.

*Remarque : La signification du terme sécurité se réfère ici uniquement aux informations non modifiées.

  (2). Idempotent signifie que plusieurs requêtes vers la même URL doivent renvoyer le même résultat. Ici, je vais expliquer à nouveau le concept d'idempotence :

L'idempotence (idempotent, idempotence) est un concept mathématique ou informatique courant en algèbre abstraite.
Il existe plusieurs définitions de l'idempotence :
Pour les opérations unaires, si une opération est effectuée plusieurs fois sur tous les nombres de l'intervalle, le résultat obtenu en effectuant l'opération plusieurs fois est le même que le résultat obtenu en effectuant l'idempotence. opération une fois, alors on dit que l’opération est idempotente. Par exemple, l'arithmétique des valeurs absolues est un exemple. Dans l'ensemble des nombres réels, il y a abs(a)=abs(abs(a)).
Pour les opérations binoculaires, il faut que lorsque les deux valeurs participant à l'opération soient égales, si le résultat de l'opération est égal aux deux valeurs participant à l'opération, l'opération est dite être idempotent, comme trouver la valeur de deux nombres La fonction de la valeur maximale est idempotente dans l'ensemble des nombres réels, c'est-à-dire max(x,x) = x.

Après avoir lu l'explication ci-dessus, vous devriez être capable de comprendre la signification de GET idempotent.

Mais dans la pratique, les deux réglementations ci-dessus ne sont pas si strictes. Exemples de citation d'articles d'autres personnes : Par exemple, la première page d'un site d'actualités est constamment mise à jour. Bien que la deuxième requête renvoie un lot d'informations différent, l'opération est toujours considérée comme sûre et idempotente car elle renvoie toujours les informations actuelles. Fondamentalement, si l'objectif est que lorsque l'utilisateur ouvre un lien, il puisse être sûr que la ressource n'a pas changé de son point de vue.

 2. Selon la spécification HTTP, POST représente une requête pouvant modifier les ressources sur le serveur. Pour continuer à citer l'exemple ci-dessus : prenons le site Web d'actualités comme exemple. Les commentaires des lecteurs sur l'actualité doivent être mis en œuvre via POST, car les ressources du site sont différentes ou modifiées après la soumission des commentaires.

Ce qui précède parle brièvement de certains problèmes principaux de GET et POST dans la spécification HTTP. Mais dans la pratique réelle, de nombreuses personnes ne suivent pas les spécifications HTTP. Il existe de nombreuses raisons à ce problème, telles que :

1. De nombreuses personnes sont avides de commodité et utilisent GET lors de la mise à jour des ressources, car pour utiliser POST. , vous devez vous rendre sur FORM (formulaire), ce qui sera un peu gênant.

2. L'ajout, la suppression, la modification et la vérification des ressources peuvent en fait être effectués via GET/POST, et il n'est pas nécessaire d'utiliser PUT et DELETE.

3. Un autre problème est que les premiers concepteurs du framework Web MVC n'ont pas consciemment traité et conçu les URL comme des ressources abstraites. Un problème plus grave est donc que le framework Web MVC traditionnel ne prend essentiellement en charge que les deux méthodes HTTP GET et POST, mais ne prend pas en charge les méthodes PUT et DELETE.

* Expliquez brièvement MVC : MVC existait à l'origine dans le programme Desktop. M fait référence au modèle de données, V fait référence à l'interface utilisateur et C fait référence au contrôleur. Le but de l'utilisation de MVC est de séparer les codes d'implémentation de M et V, afin que le même programme puisse utiliser des représentations différentes.

Les trois points ci-dessus décrivent généralement l'ancien style (qui n'adhère pas strictement à la spécification HTTP). Avec le développement de l'architecture, apparaît désormais REST (Representational State Transfer), un nouveau style qui prend en charge le HTTP. Ce n'est pas une spécification. Pour en dire plus, vous pouvez vous référer aux "Services Web RESTful".

Après avoir évoqué les principaux enjeux, regardons la différence entre GET et POST depuis la surface :

1. Les données demandées par GET seront jointes au URL Après cela (c'est-à-dire en plaçant les données dans l'en-tête du protocole HTTP), divisez l'URL et transférez les données avec ?, et connectez les paramètres avec &, tels que : login.action?name=hyddd&password=idontknow&verify=%E4%BD %A0%E5%A5 %BD. Si les données sont des lettres/chiffres anglais, envoyez-les telles quelles. S'il s'agit d'un espace, convertissez-les en +. S'il s'agit de caractères chinois/autres, cryptez directement la chaîne avec BASE64 et vous obtiendrez quelque chose comme : %E4. %BD%A0%E5%A5% BD, où XX dans %XX est la représentation ASCII du symbole en hexadécimal.

POST place les données soumises dans le corps du package HTTP.

2. "Les données soumises par la méthode GET ne peuvent contenir que 1024 octets. En théorie, POST n'a pas de limite et peut transférer de plus grandes quantités de données. Le maximum est de 80 Ko dans IIS4 et de 100 Ko dans IIS5" ? ? !

J'ai transféré la phrase ci-dessus d'un autre article. En fait, c'est faux et inexact de dire ceci :

.

(1).Tout d'abord, "les données soumises par GET ne peuvent contenir que 1024 octets". Étant donné que GET soumet les données via une URL, la quantité de données pouvant être soumises par GET est directement liée à la longueur de. l'URL. En fait, il n'y a pas de limite supérieure de paramètre pour les URL, et la spécification du protocole HTTP ne limite pas la longueur des URL. Cette limite est imposée par des navigateurs et des serveurs spécifiques. La limite d'IE en matière de longueur d'URL est de 2 083 octets (2 Ko+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.

Notez que cette limite correspond à la longueur totale de l'URL, et pas seulement à la longueur des données de la valeur de votre paramètre. [Voir référence 5]

 (2). Théoriquement, il n'y a pas de limite de taille pour le POST, et la spécification du protocole HTTP n'impose pas de limite de taille. Il est dit qu'"il y a une limite de taille de 80K/100K". la quantité de données POST". Inexact, il n'y a pas de limite aux données POST. Ce qui est limitant, c'est la capacité de traitement du gestionnaire du serveur.

Pour les programmes ASP, l'objet Request a une limite de longueur de données de 100 Ko lors du traitement de chaque champ de formulaire. Mais si vous utilisez Request.BinaryRead, une telle restriction n'existe pas.

Dans le prolongement de cela, pour IIS 6.0, Microsoft a augmenté les restrictions pour des raisons de sécurité. Nous devons également faire attention à :

 1). Le volume de données ASP POST par défaut d'IIS 6.0 est de 200 Ko et la limite de chaque champ de formulaire est de 100 Ko.
2).La taille maximale par défaut des fichiers téléchargés dans IIS 6.0 est de 4 Mo.
 3).L'en-tête de requête maximum par défaut d'IIS 6.0 est de 16 Ko.
De telles restrictions n'existaient pas avant IIS 6.0. [Voir référence 5]

Ainsi, les 80K et 100K ci-dessus ne sont peut-être que les valeurs par défaut (remarque : je n'ai pas confirmé les paramètres d'IIS4 et IIS5), mais elles peuvent certainement être définies par vous-même. Étant donné que chaque version d'IIS a des valeurs par défaut différentes pour ces paramètres, veuillez vous référer à la documentation de configuration IIS correspondante pour plus de détails.

3. Dans ASP, le serveur utilise Request.QueryString pour obtenir les paramètres de requête GET et Request.Form pour obtenir les paramètres de requête POST. Dans JSP, utilisez request.getParameter("XXXX") pour l'obtenir. Bien qu'il existe également une méthode request.getQueryString() dans jsp, elle est plus difficile à utiliser. Par exemple : passez un test.jsp?name=hyddd&password=. hyddd, utilisez request. getQueryString() obtient : name=hyddd&password=hyddd. En PHP, vous pouvez utiliser $_GET et $_POST pour obtenir des données respectivement dans GET et POST, tandis que $_REQUEST peut obtenir des données dans les requêtes GET et POST. Il convient de noter qu'il existe des dangers cachés à utiliser request en JSP et $_REQUEST en PHP. J'écrirai un article pour résumer cela la prochaine fois.

4. POST est plus sécurisé que GET. Remarque : La sécurité mentionnée ici n'est pas le même concept que la « sécurité » mentionnée dans GET ci-dessus. La signification du terme « sécurité » ci-dessus est simplement qu'aucune modification des données n'est effectuée, et la signification du terme sécurité ici est la véritable signification de la sécurité. Par exemple : lors de la soumission de données via GET, le nom d'utilisateur et le mot de passe apparaîtront en texte clair sur l'URL. , car (1) la page de connexion peut être le cache du navigateur, (2) d'autres personnes consultent l'historique du navigateur, d'autres peuvent alors obtenir votre compte et votre mot de passe. De plus, l'utilisation de GET pour soumettre des données peut également provoquer des attaques de falsification de requêtes intersites.

Pour résumer, Get est une demande de données adressée au serveur, tandis que Post est une demande de soumission de données au serveur. Dans FORM (formulaire), la méthode est par défaut "GET". POST n'a que des mécanismes d'envoi différents, aucun n'est pris et l'autre est envoyé !


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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

La différence entre char et wchar_t dans le langage C La différence entre char et wchar_t dans le langage C Apr 03, 2025 pm 03:09 PM

Dans le langage C, la principale différence entre Char et WCHAR_T est le codage des caractères: Char utilise ASCII ou étend ASCII, WCHAR_T utilise Unicode; Char prend 1 à 2 octets, WCHAR_T occupe 2-4 octets; Char convient au texte anglais, WCHAR_T convient au texte multilingue; Le char est largement pris en charge, WCHAR_T dépend de la prise en charge du compilateur et du système d'exploitation Unicode; Le char est limité dans la gamme de caractères, WCHAR_T a une gamme de caractères plus grande et des fonctions spéciales sont utilisées pour les opérations arithmétiques.

La différence entre le multithreading et le C # asynchrone La différence entre le multithreading et le C # asynchrone Apr 03, 2025 pm 02:57 PM

La différence entre le multithreading et l'asynchrone est que le multithreading exécute plusieurs threads en même temps, tandis que les opérations effectuent de manière asynchrone sans bloquer le thread actuel. Le multithreading est utilisé pour les tâches à forte intensité de calcul, tandis que de manière asynchrone est utilisée pour l'interaction utilisateur. L'avantage du multi-threading est d'améliorer les performances informatiques, tandis que l'avantage des asynchrones est de ne pas bloquer les threads d'interface utilisateur. Le choix du multithreading ou asynchrone dépend de la nature de la tâche: les tâches à forte intensité de calcul utilisent le multithreading, les tâches qui interagissent avec les ressources externes et doivent maintenir la réactivité de l'interface utilisateur à utiliser asynchrone.

Quelle est la fonction de la somme du langage C? Quelle est la fonction de la somme du langage C? Apr 03, 2025 pm 02:21 PM

Il n'y a pas de fonction de somme intégrée dans le langage C, il doit donc être écrit par vous-même. La somme peut être obtenue en traversant le tableau et en accumulant des éléments: Version de boucle: la somme est calculée à l'aide de la longueur de boucle et du tableau. Version du pointeur: Utilisez des pointeurs pour pointer des éléments de tableau, et un résumé efficace est réalisé grâce à des pointeurs d'auto-incitation. Allouer dynamiquement la version du tableau: allouer dynamiquement les tableaux et gérer la mémoire vous-même, en veillant à ce que la mémoire allouée soit libérée pour empêcher les fuites de mémoire.

Quelles sont les exigences de base pour les fonctions de langue C Quelles sont les exigences de base pour les fonctions de langue C Apr 03, 2025 pm 10:06 PM

Les fonctions de langue C sont la base de la modularisation du code et de la construction de programmes. Ils se composent de déclarations (en-têtes de fonction) et de définitions (corps de fonction). Le langage C utilise des valeurs pour transmettre les paramètres par défaut, mais les variables externes peuvent également être modifiées à l'aide d'adresse Pass. Les fonctions peuvent avoir ou ne pas avoir de valeur de retour et le type de valeur de retour doit être cohérent avec la déclaration. La dénomination de la fonction doit être claire et facile à comprendre, en utilisant un chameau ou une nomenclature de soulignement. Suivez le principe de responsabilité unique et gardez la simplicité de la fonction pour améliorer la maintenabilité et la lisibilité.

Quelle est la différence entre char et char non signé Quelle est la différence entre char et char non signé Apr 03, 2025 pm 03:36 PM

Le char et le char non signé sont deux types de données qui stockent les données des caractères. La principale différence est le moyen de gérer les nombres négatifs et positifs: plage de valeur: char signé (-128 à 127), et Char non signé Unsigned (0 à 255). Traitement du nombre négatif: le char peut stocker des nombres négatifs, le char non signé ne peut pas. Mode bit: Char le bit le plus élevé représente le symbole, un bit non signé non signé. Opérations arithmétiques: le char et le char non signé sont signés et non signés, et leurs opérations arithmétiques sont différentes. Compatibilité: char et char non signé

La différence entre H5 et mini-programmes et applications La différence entre H5 et mini-programmes et applications Apr 06, 2025 am 10:42 AM

H5. La principale différence entre les mini programmes et l'application est: Architecture technique: H5 est basé sur la technologie Web, et les mini-programmes et l'application sont des applications indépendantes. Expérience et fonctions: H5 est légère et facile à utiliser, avec des fonctions limitées; Les mini-programmes sont légers et ont une bonne interactivité; Les applications sont puissantes et ont une expérience fluide. Compatibilité: H5 est compatible multiplateforme, les applets et les applications sont limités par la plate-forme. Coût de développement: H5 a un faible coût de développement, des mini-programmes moyens et une application la plus élevée. Scénarios applicables: H5 convient à l'affichage d'informations, les applets conviennent aux applications légères et les applications conviennent aux fonctions complexes.

Quelles sont les différences et les connexions entre C et C #? Quelles sont les différences et les connexions entre C et C #? Apr 03, 2025 pm 10:36 PM

Bien que C et C # aient des similitudes, ils sont complètement différents: C est une gestion manuelle de la mémoire manuelle et un langage dépendant de la plate-forme utilisé pour la programmation système; C # est un langage orienté objet, des ordures et un langage indépendant de la plate-forme utilisé pour le bureau, l'application Web et le développement de jeux.

Comment définir la protection des mots de passe pour l'exportation PDF sur PS Comment définir la protection des mots de passe pour l'exportation PDF sur PS Apr 06, 2025 pm 04:45 PM

Exporter PDF protégé par mot de passe dans Photoshop: ouvrez le fichier image. Cliquez sur "Fichier" & gt; "Export" & gt; "Exporter en PDF". Définissez l'option "Sécurité" et entrez le même mot de passe deux fois. Cliquez sur "Exporter" pour générer un fichier PDF.

See all articles