Les méthodes HTTP sont au nombre de 9 : GET / POST / PUT / PATCH / OPTIONS / DELETE / CONNECT / TRACE. Pour comparer les différentes méthodes HTTP, y compris la célèbre comparaison PUT vs PATCH, voici un tableau qui présente leurs principales différences et caractéristiques de manière claire et concise.
Méthode | But principal | Idempotent | Corps de la requête | Corps de la réponse | Utilisation typique |
---|---|---|---|---|---|
DELETE | Supprimer une ressource spécifiée. | Oui | Facultatif | Facultatif | Suppression d'une ressource, comme un fichier ou un enregistrement. |
GET | Récupérer une ressource spécifiée. | Oui | Non | Oui | Obtenir des données d'un serveur, comme une page web ou des informations d'API. |
PATCH | Appliquer des modifications partielles à une ressource. | Non | Oui | Facultatif | Mise à jour partielle des propriétés d'une ressource. |
POST | Soumettre des données à une ressource pour traitement. | Non | Oui | Oui | Création d'une nouvelle ressource ou soumission de données pour traitement. |
PUT | Remplacer complètement une ressource. | Oui | Oui | Facultatif | Remplacer ou créer une ressource complète. |
TRACE | Effectuer un test de boucle de retour de message sur le chemin de la ressource cible. | Oui | Non | Oui | Diagnostic pour voir le chemin pris par une requête jusqu'au serveur. |
CONNECT | Établir un tunnel vers le serveur via un proxy HTTP. | Non | Facultatif | Facultatif | Utilisé pour les connexions SSL/TLS via un proxy. |
HEAD | Récupérer les en-têtes d'une ressource spécifiée. | Oui | Non | Oui (en-têtes seulement) | Vérification des en-têtes avant de télécharger une ressource complète. |
OPTIONS | Décrire les options de communication pour la ressource cible. | Oui | Facultatif | Oui | Vérification des méthodes supportées par une ressource. |
\
Objectif
La méthode DELETE sert à supprimer une ressource spécifiée sur le serveur.
Exemple
Pour supprimer un utilisateur avec l'ID 123 :
DELETE /users/123 HTTP/1.1
Host: www.example.com
Conclusion
DELETE est une méthode idempotente, idéale pour la suppression de ressources sur le serveur.
Objectif
La méthode GET est utilisée pour récupérer une ressource spécifiée.
Exemple
Pour obtenir les détails d'un utilisateur avec l'ID 123 :
GET /users/123 HTTP/1.1
Host: www.example.com
Conclusion
GET est la méthode la plus couramment utilisée pour récupérer des données sur un serveur.
Objectif
La méthode PATCH applique des modifications partielles à une ressource.
Exemple
Pour mettre à jour uniquement le nom complet d'un utilisateur avec l'ID 123 :
PATCH /users/123 HTTP/1.1
Host: www.example.com
Content-Type: application/json
{
"fullname": "John Ken"
}
Conclusion
PATCH est idéale pour les mises à jour partielles des ressources, offrant plus de flexibilité que PUT.
Objectif
La méthode POST soumet des données à une ressource pour traitement.
Exemple
Pour créer un nouvel utilisateur :
POST /users HTTP/1.1
Host: www.example.com
Content-Type: application/json
{
"fullname": "John Doe",
"age": 67,
"hasDrivingLicence": true
}
Conclusion
POST est utilisée pour la création de nouvelles ressources et le traitement des données soumises.
Objectif
La méthode PUT remplace complètement une ressource.
Exemple
Pour remplacer un utilisateur avec l'ID 123 :
PUT /users/123 HTTP/1.1
Host: www.example.com
Content-Type: application/json
{
"id": 123,
"fullname": "John Ken",
"age": 62,
"hasDrivingLicence": true
}
Conclusion
PUT est idéale pour les scénarios où une ressource entière doit être remplacée ou créée.
Objectif
La méthode TRACE effectue un test de boucle de retour de message sur le chemin de la ressource cible. Elle permet au client de voir ce que les serveurs intermédiaires ajoutent ou modifient dans la requête.
Exemple
Pour effectuer un test de diagnostic sur le chemin de la requête :
TRACE /users/123 HTTP/1.1
Host: www.example.com
Détails supplémentaires
La méthode TRACE renvoie une réponse contenant l'intégralité de la requête originale envoyée par le client, ce qui permet de voir les éventuelles modifications apportées par les serveurs intermédiaires (comme les proxies). C'est particulièrement utile pour diagnostiquer les problèmes de communication ou de configuration des proxies.
Sécurité
L'utilisation de TRACE peut présenter des risques de sécurité, notamment en exposant des informations sensibles comme les cookies d'authentification dans la réponse. Par conséquent, de nombreux serveurs désactivent cette méthode pour des raisons de sécurité.
Conclusion
TRACE est principalement utilisée pour le diagnostic et la visualisation du chemin pris par une requête jusqu'au serveur, mais doit être utilisée avec prudence en raison des implications de sécurité.
Objectif
La méthode CONNECT est utilisée pour établir un tunnel vers le serveur via un proxy HTTP, souvent pour des connexions SSL/TLS sécurisées.
Exemple
Pour établir une connexion HTTPS via un proxy :
CONNECT www.example.com:443 HTTP/1.1
Host: www.example.com:443
Conclusion
La méthode CONNECT est essentielle pour établir des connexions sécurisées via des proxies.
Objectif
La méthode HEAD récupère les en-têtes d'une ressource spécifiée sans en télécharger le corps.
Exemple
Pour vérifier les en-têtes d'une page web :
HEAD /index.html HTTP/1.1
Host: www.example.com
Conclusion
HEAD est utile pour obtenir des métadonnées sans télécharger l'intégralité de la ressource.
Objectif
La méthode OPTIONS décrit les options de communication pour la ressource cible.
Exemple
Pour vérifier les méthodes supportées par le serveur pour une ressource spécifique :
OPTIONS /users/123 HTTP/1.1
Host: www.example.com
Conclusion
OPTIONS est utilisée pour déterminer les capacités de communication d'un serveur.
Les méthodes HTTP offrent une variété de moyens pour interagir avec les ressources sur le serveur. Le choix entre ces méthodes dépend des besoins spécifiques de votre application web et des opérations à réaliser. En comprenant les différences et les caractéristiques de chaque méthode, vous pouvez les utiliser de manière plus appropriée et efficace pour optimiser vos applications web.
Tuto - JSF 2 – Redirect HTTP 404 de manière programmatique
Scalabilité des applications : les conseils d’AXOPEN, agence de développement web, pour rendre son appli web scalable
Cet article traite d’un problème de sélection de lignes dans un tableau en client léger.