s'il vous plait je veux savoir la différence entre les deux fonctions Post et Get
merci d'avance
Version imprimable
s'il vous plait je veux savoir la différence entre les deux fonctions Post et Get
merci d'avance
Dans le cas de GET les variables sont passées d'une page à l'autre via l'URL. En ce qui concerne le POST les variables sont transmises via les entêtes HTTP
« POST » est la valeur qui correspond à un envoi de données stockées dans le corps de la requête, tandis que « GET » correspond à un envoi des données codées dans l'URL, et séparées de l'adresse du script par un point d'interrogation (pour plus de renseignement sur les méthodes POST et GET, consultez l'article sur le protocole HTTP
J'en profite aussi pour enregistrer tout ça :aie:
Salut
Pour être plus précis, GET et POST sont en fait la même méthode de transfert de données. Il s'agit simplement d'une commande HTTP de type GET ou POST :
http://g-rossolini.developpez.com/tu...concepts#LVI-E
http://mathieu-lemoine.developpez.co...iels/web/http/
Pour changer de GET à POST et vice versa, il suffit de changer directment la requête ;)
Pour résumer, une requête GET ou POST sont la même chose, ce sont quelques lignes de texte transmises du navigateur au serveur Web (ou l'inverse).
Il y a quand même une différence fondamentale entre les deux :
- GET transmet les paramètres en clair dans l'URL. Exemple : google.com?search=toto. Méthode peu sécurisée.
- POST transmet les paramètres dans l'entête HTTP. Méthode beaucoup plus sécurisée (à condition d'être en HTTPS).
Je maintiens qu'il n'y a aucune différence entre les deux. Il est peut-être plus facile pour un novice de modifier un paramètre GET que POST, mais il existe de très nombreux outils pour visualiser les requêtes et d'autres pour les forger (=fabriquer).
Un très bon exemple est l'extension Live HTTP headers pour Firefox : https://addons.mozilla.org/en-US/firefox/addon/3829
Cette extension très simple permet de voir quelles requêtes HTTP sont envoyées et reçues par le navigateur.
Voici un extrait de la requête envoyée par mon navigateur pour enregistrer ce message :
Le serveur m'a répondu ceci :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 POST /forums/newreply.php?do=postreply&t=563201 HTTP/1.1 Host: www.developpez.net User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Referer: http://www.developpez.net/forums/newreply.php?do=newreply&noquote=1&p=3349208 Content-Type: application/x-www-form-urlencoded Content-Length: 937 title=&message=Je+maintiens+qu%27il+n%27y+a+aucune+diff%E9rence+entre+les+deux.+Il+est+peut-%EAtre+plus+facile+pour+un+novice+de+modifier+un+param%E8tre+GET+que+POST%2C+mais+il+existe+de+tr%E8s+nombreux+outils+pour+visualiser+les+requ%EAtes+et+d%27autres+pour+les+%3Ci%3Eforger%3C%2Fi%3E+%28%3Dfabriquer%29.%3Cbr%3E%3Cbr%3EUn+tr%E8s+bon+exemple+est+l%27extension+Live+HTTP+headers+pour+Firefox+%3A+https%3A%2F%2Faddons.mozilla.org%2Fen-US%2Ffirefox%2Faddon%2F3829%3Cbr%3ECette+extension+tr%E8s+simple+permet+de+voir+quelles+requ%EAtes+HTTP+sont+envoy%E9es+et+re%E7ues+par+le+navigateur.%3Cbr%3E%3Cbr%3EVoici+un+extrait+de+la+requ%EAte+envoy%E9e+par+mon+navigateur+pour+enregistrer+ce+message+%3A%3Cbr%3E&wysiwyg=1&s=&do=postreply&t=563201&p=3349208&posthash=af38ba3da6a6eccdd4a771a4431870c9&poststarttime=1212683671&loggedinuser=30724&multiquoteempty=&sbutton=Envoyer+la+r%E9ponse&signature=1&parseurl=1&emailupdate=0&folderid=0&rating=0
Suite à quoi mon navigateur a demandé à revoir le message qu'il vient de poster :Code:
1
2
3
4
5
6
7
8
9
10
11 HTTP/1.x 302 Found Date: Thu, 05 Jun 2008 16:37:42 GMT Server: Apache/2.2.8 (Unix) PHP/5.2.6 X-Powered-By: PHP/5.2.6 Cache-Control: private Pragma: private Location: http://www.developpez.net/forums/showthread.php?p=3349488#post3349488 Content-Length: 0 Keep-Alive: timeout=1, max=100 Connection: Keep-Alive Content-Type: text/html; charset=ISO-8859-1
Réponse du serveur :Code:
1
2
3
4
5
6
7
8
9
10 GET /forums/showthread.php?p=3349488 HTTP/1.1 Host: www.developpez.net User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Referer: http://www.developpez.net/forums/newreply.php?do=newreply&noquote=1&p=3349208
Code:
1
2
3
4
5
6
7
8
9
10 HTTP/1.x 200 OK Date: Thu, 05 Jun 2008 16:37:42 GMT Server: Apache/2.2.8 (Unix) PHP/5.2.6 X-Powered-By: PHP/5.2.6 Cache-Control: private Pragma: private Keep-Alive: timeout=1, max=99 Connection: Keep-Alive Transfer-Encoding: chunked Content-Type: text/html; charset=ISO-8859-1
Il n'y a donc que très très peu de différence entre POST :
Et GET :Code:
1
2
3
4
5 POST /forums/newreply.php?do=postreply&t=563201 HTTP/1.1 Host: www.developpez.net Content-Type: application/x-www-form-urlencoded Content-Length: 937 title=&message=Je+maintiens+qu%27il+n%27y+a+aucune+diff%E9rence+entre+les+deux.+Il+est+peut-%EAtre+plus+facile+pour+un+novice+de+modifier+un+param%E8tre+GET+que+POST%2C+mais+il+existe+de+tr%E8s+nombreux+outils+pour+visualiser+les+requ%EAtes+et+d%27autres+pour+les+%3Ci%3Eforger%3C%2Fi%3E+%28%3Dfabriquer%29.%3Cbr%3E%3Cbr%3EUn+tr%E8s+bon+exemple+est+l%27extension+Live+HTTP+headers+pour+Firefox+%3A+https%3A%2F%2Faddons.mozilla.org%2Fen-US%2Ffirefox%2Faddon%2F3829%3Cbr%3ECette+extension+tr%E8s+simple+permet+de+voir+quelles+requ%EAtes+HTTP+sont+envoy%E9es+et+re%E7ues+par+le+navigateur.%3Cbr%3E%3Cbr%3EVoici+un+extrait+de+la+requ%EAte+envoy%E9e+par+mon+navigateur+pour+enregistrer+ce+message+%3A%3Cbr%3E&wysiwyg=1&s=&do=postreply&t=563201&p=3349208&posthash=af38ba3da6a6eccdd4a771a4431870c9&poststarttime=1212683671&loggedinuser=30724&multiquoteempty=&sbutton=Envoyer+la+r%E9ponse&signature=1&parseurl=1&emailupdate=0&folderid=0&rating=0
Code:
1
2 GET /forums/showthread.php?p=3349488 HTTP/1.1 Host: www.developpez.net
Bonsoir,
Comme je l'ai dit dans un autre fil, la seule protection offerte par POST est celle contre le regard curieux de son voisin.
Bien sûr, il y a post en https, mais c'est plus lié à la nature sécurisé de https qu'à une qualité intrinsèque de post. Et https ou pas, on peut 'usurper' les deux, il suffit de créer un formulaire envoyant vers la page qui les traite, et si aucune vérification d'expéditeur n'est faite de ce côté là, les données passent de la même manière.