Que sont les méthodes HTTP et comment les utiliser ?
Chaque requête HTTP utilise une méthode pour décrire son objectif essentiel. Chaque méthode a des utilisations spécifiques pour des tâches allant de la récupération d’une page web à la suppression d’une ressource. GET et POST sont les deux méthodes les plus connues, mais il en existe sept autres.
Découvrez ce concept et l’utilité de chacune des neuf méthodes HTTP possibles.
Qu’est-ce qu’une méthode HTTP ?
Chaque requête HTTP que vous effectuez comprend une action et une cible pour cette action, un peu comme un verbe et un nom qui fait office d’objet.
L’URL identifie une ressource unique, qui constitue la cible de la requête. Le verbe, c’est-à-dire l’action à effectuer sur cette URL, est représenté par une méthode.
La première ligne d’une requête HTTP fournit les informations les plus importantes, notamment la version HTTP, l’URL de la ressource et la méthode de requête :
Quelles sont les 9 méthodes HTTP ?
Les quatre premières méthodes sont des équivalents des quatre actions du modèle CRUD : Créer, Lire, Mettre à jour et Supprimer. Les méthodes HTTP correspondantes sont les suivantes POST, GET, PUT et DELETE.
GET
Il s’agit de la requête par défaut la plus courante que vous envoyez lorsque vous naviguez sur le web et que vous cliquez sur des liens ou que vous demandez des données par l’intermédiaire d’une API. Le serveur doit renvoyer la ressource dans son corps de réponse.
POST
Utilisez POST pour créer de nouvelles ressources, en particulier lorsque ces ressources ont un parent identifiable. Par exemple, si vous avez une ressource /clients, vous devez créer un nouveau client en envoyant les données requises à /clients.
PUT
Mettre à jour ou remplacer une ressource existante. Cette méthode est similaire à POST, mais le client est responsable du choix d’un identifiant unique pour la ressource. Pour créer une ressource à l’aide de PUT, l’URL de la ressource doit inclure un identifiant, par exemple, /clients/007.
DELETE
Cette méthode permet de supprimer la ressource spécifiée dans l’URL. Comme pour toutes les méthodes HTTP, la prise en charge dépend du serveur. Il peut laisser n’importe qui supprimer une ressource, bien que cela soit manifestement risqué. Un serveur qui prend en charge la méthode DELETE exige généralement une authentification et une autorisation.
Deux autres méthodes offrent de légères variations par rapport à ce qui précède : PATCH et HEAD. Vous pouvez les trouver utiles lors de l’utilisation de certaines API ou si vous construisez les vôtres.
PATCH
La méthode PATCH met à jour une ressource existante, avec seulement des données partielles. En d’autres termes, vous n’avez pas besoin de fournir la représentation complète de la nouvelle ressource, mais seulement les champs que vous devez mettre à jour.
HEAD
Une requête HEAD est utilisée lorsque vous souhaitez obtenir des informations sur une ressource, mais pas sur la ressource elle-même. La réponse ne comprendra pas de corps, mais un ensemble d’en-têtes HTTP utiles. Vous pouvez connaître la taille totale d’un fichier avant de le télécharger, grâce à l’en-tête de réponse Content-Length.
Les autres méthodes OPTIONS, CONNEXION et TRACE-sont plus obscures. Ils traitent des métadonnées, de la mise en réseau et du dépannage. Vous pouvez les trouver utiles dans certains types de programmation, mais vous ne les utiliserez probablement pas tous les jours.
OPTIONS
Un serveur doit répondre à cette méthode en vous indiquant les méthodes HTTP que la ressource prend en charge. Cela peut être utile pour la découverte.
CONNEXION
Certains types de logiciels de mise en réseau peuvent utiliser cette méthode pour établir un tunnel entre deux ordinateurs. Cette méthode est souvent utilisée pour initier une connexion HTTPS via un proxy.
TRACE
Cette méthode est utile pour le dépannage. Lorsqu’il la reçoit, le serveur doit renvoyer la requête qu’il a reçue dans le corps de la réponse. La méthode fournit un mécanisme permettant de vérifier si des machines intermédiaires ont modifié des détails de la requête.
GET et HEAD sont les deux seules méthodes prises en charge par tous les serveurs web. Un serveur particulier peut ou non prendre en charge d’autres méthodes, c’est pourquoi vous devez d’abord vérifier.
Quand pouvez-vous utiliser ces méthodes ?
La plupart du temps, les méthodes HTTP sont transparentes pour vous. Cependant, vous devrez les prendre en compte si vous ajoutez un formulaire à une page web ou si vous utilisez une API.
Méthodes HTTP en HTML
Les méthodes HTTP formulaire de l’élément de l’élément de l’élément permet de définir la méthode HTTP à utiliser lorsque le formulaire est soumis. HTML ne prend en charge que l’attribut post et obtenir pour cet attribut, ainsi qu’une obscure alternative de dialogue.
Vous pouvez utiliser des fonctionnalités telles que les outils de développement de Chrome pour afficher les valeurs de Réseau et confirmer la méthode que votre navigateur envoie pour une requête particulière. Notez que la plupart des formulaires web envoient un POST car ils mettent généralement à jour des données sur le serveur. De nombreux formulaires de recherche, cependant, utilisent GET car ils récupèrent simplement des données sans les modifier.
Comme les données POST ne font pas partie de l’URL, elles sont plus confidentielles que si vous les envoyez via GET. Les données existent toujours dans le corps de la requête où, en théorie, un attaquant peut les intercepter. Mais l’envoi de données via HTTPS devrait atténuer ce problème.
Vous ne devez jamais mettre en œuvre une connexion d’utilisateur avec des requêtes GET. Même si la connexion ressemble davantage à une opération de lecture qu’à une opération de création ou de mise à jour, vous devez toujours utiliser POST pour sécuriser les données.
Étant donné que les formulaires HTML ne prennent en charge que les méthodes GET et POST, vous ne pouvez pas créer directement un formulaire qui, par exemple, supprime une ressource sur le serveur. Une solution de contournement courante, qui respecte les principes REST sur le serveur, consiste à utiliser une variable de remplacement et à faire comme s’il s’agissait de la méthode HTTP d’origine. Par exemple :
Votre code côté serveur peut vérifier la présence de cette variable « méthode proxy » et la traiter comme s’il s’agissait de la véritable méthode utilisée. Par exemple, en PHP :
Envoi de requêtes HTTP par programme
L’API Web Fetch fournit une fonction JavaScript fetch() que vous pouvez utiliser pour envoyer une requête HTTP. Elle prend en charge l’ensemble des méthodes, et pas seulement les méthodes GET et POST prises en charge par HTML.
La fonction fetch envoie une requête GET par défaut. Pour utiliser une méthode différente, indiquez son nom comme valeur d’un champ méthode dans un objet que vous envoyez comme deuxième argument.
Vous pouvez également envoyer des requêtes HTTP à partir de nombreux langages côté serveur, y compris PHP. Dans ce langage, la bibliothèque curl est un moyen courant d’envoyer de telles requêtes.
La bibliothèque curl dispose d’une option CURLOPT_CUSTOMREQUEST que vous pouvez définir pour spécifier une méthode.
Via la ligne de commande
L’outil de ligne de commande curl vous permet de transférer des données vers ou depuis un serveur, via l’un de plusieurs protocoles. HTTP (et HTTPS) sont deux cas d’utilisation très courants.
Par défaut, curl envoie une requête GET, comme vous pouvez le confirmer avec la commande suivante :
Vous pouvez voir la méthode de requête sur la cinquième ligne de la sortie :
Vous pouvez modifier la méthode de requête envoyée par curl à l’aide de l’option -X :
Maintenant, curl envoie une requête en utilisant la méthode POST :
HTTP a de nombreuses utilisations
La plupart de vos activités sur le web impliquent des requêtes GET standard, avec de temps en temps des requêtes POST pour les soumissions de formulaires. Mais HTTP est un protocole beaucoup plus expressif que cela ne le laisse supposer.
Certaines des méthodes les plus courantes reflètent le modèle CRUD, ce qui fait de HTTP une excellente base pour construire une API axée sur les ressources.
S’abonner à notre lettre d’information
Quelles sont les 5 méthodes du protocole HTTP ?
Les méthodes de requête HTTP les plus couramment utilisées sont GET, POST, PUT, PATCH et DELETE. Elles sont équivalentes aux opérations CRUD (création, lecture, mise à jour et suppression).
Quelle méthode HTTP devons-nous utiliser ?
La méthode HTTP la plus courante est GET, qui renvoie une vue représentative du contenu et des données d’une ressource. GET doit être utilisé en mode lecture seule, ce qui permet de préserver la sécurité des données et l’idempotence de la ressource.
Pourquoi avons-nous besoin de différentes méthodes HTTP ?
Les différentes méthodes HTTP ont des règles et des restrictions différentes. Si tout le monde est d’accord sur ces règles, nous pouvons commencer à faire des suppositions sur l’intention. Parce que ces garanties existent, les serveurs HTTP, les clients et les proxies peuvent prendre des décisions intelligentes sans comprendre votre application spécifique.
Combien y a-t-il de méthodes HTTP ?
Les développeurs d’API n’utilisent généralement que GET, PUT ou POST, mais le registre officiel des méthodes de requête HTTP répertorie 39 verbes HTTP au total, chacun fournissant une méthode pour des interactions puissantes. Dans cet article, nous passons en revue 9 des verbes les plus courants.