Maison >développement back-end >tutoriel php >La différence entre get et post en php

La différence entre get et post en php

angryTom
angryTomoriginal
2019-08-23 16:28:465517parcourir

La différence entre get et post en php

La différence entre php get et post

1 . Get est inoffensif lorsque le navigateur revient en arrière, mais la publication sera à nouveau demandée ;

2. L'adresse URL générée par get peut être collectée, mais la publication ne le sera pas

3. Le get ; les paramètres de la requête seront Il est entièrement conservé dans l'historique du navigateur, mais les paramètres de la publication ne seront pas conservés

4. Les paramètres d'obtention sont transmis via l'URL et la publication est placée dans le boby de la requête ; 🎜>

5. La demande d'obtention est dans l'URL. Les paramètres transmis ont des restrictions de longueur, mais pas la publication

6. Il y a des paramètres pour GET dans la barre de fond d'écran, mais aucun paramètre pour la publication ; .

Limitation de longueur de GET et POST

GET

1. GET se fait via la soumission d'une URL data, donc la quantité de données qui peut être soumise par GET est directement liée à la longueur maximale que l'URL peut atteindre.

 2. En fait, le protocole HTTP n'a aucune limite sur la longueur des URL ; la plupart des restrictions sur la longueur des URL sont des paramètres de configuration du navigateur ou du serveur

POST

1. De même, le protocole HTTP n'impose aucune restriction sur le POST, qui est généralement limité par la configuration du serveur ou la taille de la mémoire.

2. Sous PHP, vous pouvez modifier la taille postmax de php.conf pour définir la taille du POST.

Problème de longueur du contenu de l'en-tête de demande

Si quelqu'un falsifie par malveillance la longueur du contenu A grand en-tête, mais envoie en fait une requête avec une petite longueur de contenu, de sorte que le serveur attendra jusqu'à ce que son délai soit expiré. Bien entendu, le serveur peut être configuré pour éviter ce problème

Tutoriel recommandé : Tutoriel vidéo PHP

Sécurité de GET et POST

 1. GET est demandé via une URL, qui peut être vue directement et transmise en texte clair.

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. La requête GET sera enregistrée dans l'historique du navigateur et pourra également être enregistrée dans le journal Web.

Le statut de GET et POST sur le serveur

Selon la conception de http, lorsque tout le monde voit get, ils s'attendent à ce que cette requête soit le serveur Il n'y a aucune modification. Quand j'ai vu le post, j'ai pensé qu'il avait modifié le serveur.

GET est idempotent, POST n'est pas idempotent

Idempotent signifie que la même méthode de requête a le même effet si elle est exécutée plusieurs fois ou une seule fois . même.

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 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 "Regardez les 20 dernières publications Weibo sur ma timeline". scénario de " Dans un scénario comme publier sur Weibo, commenter et aimer.

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:
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