Méthodes de requête HTTP


Qu'est-ce que HTTP ?

Le protocole de transfert hypertexte (HTTP) est conçu pour permettre les communications entre les clients et les serveurs.

HTTP fonctionne comme un protocole de 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 sur l'état de la demande et peut également contenir le contenu demandé.


Méthodes HTTP

  • AVOIR
  • PUBLIER
  • METTRE
  • DIRIGER
  • EFFACER
  • PIÈCE
  • OPTIONS

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.

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

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.php?name1=value1&name2=value2

Quelques autres notes sur les requêtes GET :

  • Les requêtes GET peuvent être mises en cache
  • Les requêtes GET restent dans l'historique du navigateur
  • Les requêtes GET peuvent être mises en signet
  • Les requêtes GET ne doivent jamais être utilisées lorsqu'il s'agit de données sensibles
  • Les requêtes GET ont des restrictions de longueur
  • Les requêtes GET ne sont utilisées que pour demander des données (pas 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.php HTTP/1.1
Host: w3schools.com

name1=value1&name2=value2

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

Quelques autres 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


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 gros fichier ou un corps de réponse.


La méthode DELETE

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


La méthode OPTIONS

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


Comparez GET et POST

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

  GET POST
BACK button/Reload Harmless Data will be re-submitted (the browser should alert the user that the data are about to be re-submitted)
Bookmarked Can be bookmarked Cannot be bookmarked
Cached Can be cached Not cached
Encoding type application/x-www-form-urlencoded application/x-www-form-urlencoded or multipart/form-data. Use multipart encoding for binary data
History Parameters remain in browser history Parameters are not saved in browser history
Restrictions on data length Yes, when sending data, the GET method adds the data to the URL; and the length of a URL is limited (maximum URL length is 2048 characters) No restrictions
Restrictions on data type Only ASCII characters allowed No restrictions. Binary data is also allowed
Security GET is less secure compared to POST because data sent is part of the URL

Never use GET when sending passwords or other sensitive information!
POST is a little safer than GET because the parameters are not stored in browser history or in web server logs
Visibility Data is visible to everyone in the URL Data is not displayed in the URL