HTTP Méthodes de requête
Qu'est-ce que HTTP ?
Le protocole HTTP (Hypertext Transfer Protocol) est conçu pour permettre les communications entre les clients et les serveurs.
HTTP fonctionne comme un protocole requête-réponse entre un client et un serveur.
Exemple : Un client (navigateur) envoie une requête HTTP au serveur ; puis le serveur renvoie une réponse au client. La réponse contient des informations d'état sur la demande et peut également contenir le contenu demandé.
Méthodes HTTP
- GET
- POST
- PUT
- HEAD
- DELETE
- PATCH
- OPTIONS
- CONNECT
- TRACE
Les deux méthodes HTTP les plus courantes sont : GET et POST.
La méthode GET
GET est utilisé pour demander des données à une ressource spécifiée.
Notez que la chaîne de requête (paires nom/valeur) est envoyée dans l'URL d'une requête GET :
/test/demo_form.html?name1=value1&name2=value2
Quelques notes sur les requêtes GET :
- Les requêtes GET peuvent être mises en cache
- GET demande de rester dans l'historique du navigateur
- Les requêtes GET peuvent être ajoutées à vos favoris
- Les requêtes GET ne doivent jamais être utilisées lorsqu'il s'agit de données sensibles
- Requêtes GET pour avoir des restrictions de longueur
- Les requêtes GET ne sont utilisées que pour demander des données (et non pour les modifier)
La méthode POST
POST est utilisé pour envoyer des données à un serveur pour créer/mettre à jour une ressource.
Les données envoyées au serveur avec POST sont stockées dans le corps de la requête HTTP :
POST /test/demo_form.html HTTP/1.1
Host: w3schools.com
name1=value1&name2=value2
Quelques notes sur les requêtes POST :
- Les requêtes POST ne sont jamais mises en cache
- Les requêtes POST ne restent pas dans l'historique du navigateur
- Les requêtes POST ne peuvent pas être mises en signet
- Les requêtes POST n'ont aucune restriction sur la longueur des données
Comparez GET et POST
Le tableau suivant compare les deux méthodes HTTP : GET et POST.
GET | POST | |
---|---|---|
Bouton RETOUR/Recharger | Inoffensif | Les données seront soumises à nouveau (le navigateur doit alerter l'utilisateur que les données sont sur le point d'être soumises à nouveau) |
Marqué | Peut être ajouté à vos favoris | Ne peut pas être ajouté aux favoris |
En cache | Peut être mis en cache | Non mis en cache |
Type d'encodage | application/x-www-form-urlencoded | application/x-www-form-urlencoded ou multipart/form-data. Utiliser le codage en plusieurs parties pour les données binaires |
Historique | Les paramètres restent dans l'historique du navigateur | Les paramètres ne sont pas enregistrés dans l'historique du navigateur |
Restrictions sur la longueur des données | Oui, lors de l'envoi de données, la méthode GET ajoute les données à l'URL ; et la longueur d'une URL est limitée (la longueur maximale de l'URL est de 2 048 caractères) | Aucune restriction |
Restrictions sur le type de données | Seuls les caractères ASCII autorisés | Aucune restriction. Les données binaires sont également autorisées |
Sécurité | GET est moins sécurisé que POST car les données envoyées font partie de l'URL N'utilisez jamais GET lors de l'envoi de mots de passe ou d'autres informations sensibles ! |
POST est un peu plus sûr que GET car les paramètres ne sont pas stockés dans l'historique du navigateur ni dans les journaux du serveur Web |
Visibilité | Les données sont visibles par tout le monde dans l'URL | Les données ne sont pas affichées dans l'URL |
La méthode PUT
PUT est utilisé pour envoyer des données à un serveur pour créer/mettre à jour une ressource.
La différence entre POST et PUT est que les requêtes PUT sont idempotentes. Autrement dit, appeler plusieurs fois la même requête PUT produira toujours le même résultat. En revanche, l'appel répété d'une requête POST a pour effet secondaire de créer plusieurs fois la même ressource.
La méthode HEAD
HEAD est presque identique à GET, mais sans le corps de la réponse.
En d'autres termes, si GET /users renvoie une liste d'utilisateurs, alors HEAD /users fera la même requête mais ne renverra pas la liste des utilisateurs.
Les requêtes HEAD sont utiles pour vérifier ce qu'une requête GET renverra avant de faire une requête GET - comme avant de télécharger un fichier volumineux ou un corps de réponse.
La méthode DELETE
La méthode DELETE supprime la ressource spécifiée.
La méthode PATCH
La méthode PATCH permet d'appliquer des modifications partielles à une ressource.
La méthode OPTIONS
La méthode OPTIONS décrit les options de communication pour la ressource cible.
La méthode CONNECT
La méthode CONNECT est utilisée pour démarrer une communication bidirectionnelle (un tunnel) avec la ressource demandée.
La méthode TRACE
La méthode TRACE est utilisée pour effectuer un test de bouclage de message qui teste le chemin de la ressource cible (utile à des fins de débogage).