Méthodes de requête HTML

Qu'est-ce que HTTP ?

Le protocole de transfert de hyper-texte (Hypertext Transfer Protocol, abrégé HTTP) vise à permettre la communication entre le client et le serveur.

HTTP agit en tant que protocole de requête-réponse entre le client et le serveur.

Exemple : le client (navigateur) envoie une requête HTTP au serveur ; puis le serveur renvoie la réponse au client. La réponse contient des informations sur l'état de la requête, et peut également contenir le contenu demandé.

Méthode HTTP

  • GET
  • POST
  • PUT
  • HEAD
  • DELETE
  • PATCH
  • OPTIONS

Les deux méthodes les plus courantes sont : GET et POST.

Méthode GET

GET est utilisé pour demander des données à une ressource spécifique.

GET est l'une des méthodes HTTP les plus courantes.

Veuillez noter que la chaîne de requête (paires de nom/valeur) est envoyée dans l'URL de la requête GET :

/test/demo_form.php?name1=value1&name2=value2

Autres commentaires sur les requêtes GET :

  • Les requêtes GET peuvent être mises en cache
  • Les requêtes GET sont conservées dans l'historique du navigateur
  • Les requêtes GET peuvent être ajoutées comme favoris
  • Ne pas utiliser les requêtes GET pour traiter des données sensibles
  • Les requêtes GET ont une limitation de longueur
  • Les requêtes GET devraient être utilisées uniquement pour récupérer des données (sans modification)

Méthode POST

POST est utilisé pour envoyer des données au serveur pour créer/mettre à jour une ressource.

Les données envoyées au serveur via POST sont stockées dans le corps de la requête HTTP :

POST /test/demo_form.php HTTP/1.1
Host: codew3c.com
name1=value1&name2=value2

POST est l'une des méthodes HTTP les plus courantes.

Autres commentaires sur les requêtes POST :

  • La requête POST n'est pas mise en cache
  • La requête POST n'est pas conservée dans l'historique du navigateur
  • POST ne peut pas être ajouté comme favori
  • La requête POST n'a pas de exigence sur la longueur des données

Méthode PUT

PUT est utilisé pour envoyer des données au serveur pour créer/mettre à jour une ressource.

La différence entre POST et PUT réside dans le fait que la requête PUT est idempotente (idempotent). Cela signifie que plusieurs appels de la même requête PUT produiront toujours le même résultat. En revanche, appeler plusieurs fois une requête POST a pour effet secondaire de créer plusieurs fois le même ressource.

Méthode HEAD

HEAD est presque identique à GET, mais sans corps de réponse.

Autrement dit, si GET /users retourne une liste d'utilisateurs, alors HEAD /users émettra la même requête, mais ne retournera pas la liste des utilisateurs.

La requête HEAD est utile pour vérifier le contenu que la requête GET retournera avant de l'envoyer (par exemple, avant de télécharger un grand fichier ou un corps de réponse).

Méthode DELETE

La méthode DELETE supprime la ressource spécifiée.

Méthode OPTIONS

La méthode OPTIONS décrit les options de communication de la ressource cible.

Comparaison GET et POST

Le tableau suivant compare deux méthodes HTTP : GET et POST.

  GET POST
Bouton retour/actualiser Inoffensif Les données seront soumises à nouveau (le navigateur devrait informer l'utilisateur que les données seront soumises à nouveau).
Favori Peut être ajouté comme favori Ne peut pas être ajouté comme favori
Cache Peut être mis en cache Ne peut pas être mis en cache
Type de codage application/x-www-form-urlencoded application/x-www-form-urlencoded ou multipart/form-data. Utilisez l'encodage multiple pour les données binaires.
Historique Les paramètres sont conservés dans l'historique du navigateur. Les paramètres ne sont pas conservé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 des données à l'URL ; la longueur de l'URL est limitée (la longueur maximale de l'URL est de 2048 caractères). Aucune restriction.
Restrictions sur le type de données Seulement les caractères ASCII sont autorisés. Aucune restriction. Permet également les données binaires.
Sécurité

Compared to POST, GET has lower security because the data sent is part of the URL.

Ne jamais utiliser GET pour envoyer des mots de passe ou d'autres informations sensibles !

POST est plus sûr que GET, car les paramètres ne sont pas conservés dans l'historique du navigateur ou dans les journaux du serveur web.
Visibilité Les données sont visibles pour tous dans l'URL. Les données ne s'affichent pas dans l'URL.