Protocole HTTP et conception d'API REST
Informatique de gestion · Bachelor 2
Requêtes et codes HTTP, ressources, verbes, formats JSON et principes d'une API REST.
Introduction
HTTP (HyperText Transfer Protocol) est le protocole applicatif du web : un client envoie une requête composée d'une méthode, d'une URL, d'en-têtes et éventuellement d'un corps, et le serveur répond par un code de statut, des en-têtes et un corps. HTTP est sans état : chaque requête est indépendante, ce qui impose des mécanismes explicites (cookies, jetons) pour suivre une session.
Une API REST expose des ressources identifiées par des URL (par exemple /clients/42) et les manipule via les méthodes HTTP : GET lit, POST crée, PUT remplace, PATCH modifie partiellement, DELETE supprime. Les échanges utilisent souvent le format JSON. Les codes de statut indiquent le résultat : 2xx succès, 3xx redirection, 4xx erreur du client, 5xx erreur du serveur.
En informatique de gestion, les API REST relient les applications entre elles (ERP, boutique en ligne, application mobile, service de paiement). Concevoir une API claire, cohérente et sécurisée, avec HTTPS et une authentification adaptée, conditionne la maintenabilité de l'ensemble.
Objectifs d'apprentissage
- Décrire le cycle requête-réponse HTTP et ses composants
- Associer chaque méthode HTTP à son usage et à ses propriétés (sûre, idempotente)
- Interpréter les familles de codes de statut
- Concevoir des URL de ressources cohérentes
- Expliquer le rôle de HTTPS et des jetons d'authentification
Concepts clés
- Requête et réponse HTTP
- La requête contient méthode, URL, en-têtes et corps ; la réponse contient code de statut, en-têtes et corps. Le protocole est sans état.
- Méthodes HTTP
- GET et DELETE sont idempotentes, GET est de plus sûre (pas d'effet de bord) ; POST n'est pas idempotente ; PUT est idempotente.
- Codes de statut
- 200 OK, 201 Created, 204 No Content, 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 500 Internal Server Error.
- Principes REST
- Ressources identifiées par URL, interface uniforme, absence d'état côté serveur entre requêtes, représentations (JSON), cache possible.
- HTTPS et authentification
- HTTPS chiffre les échanges via TLS. Les API utilisent souvent des jetons (Bearer, JWT, OAuth 2.0) transmis dans l'en-tête Authorization.
Conclusion
HTTP et REST fournissent un vocabulaire commun pour faire communiquer des systèmes hétérogènes. Utiliser correctement les méthodes, les codes de statut et la sécurité simplifie l'intégration et la maintenance.
Une API bien conçue est un contrat stable : elle se documente, se versionne et évolue avec prudence.
Cartes
- Que signifie « HTTP est sans état » ?
- Le serveur ne conserve pas de mémoire entre deux requêtes ; chaque requête doit porter toutes les informations nécessaires (par exemple un jeton).
- À quoi sert la méthode GET ?
- À lire une ressource sans la modifier ; elle est sûre et idempotente.
- Quelle différence entre PUT et PATCH ?
- PUT remplace entièrement la ressource ; PATCH n'applique qu'une modification partielle.
- Qu'est-ce que l'idempotence ?
- Une opération est idempotente si l'exécuter plusieurs fois produit le même effet qu'une seule fois (PUT, DELETE).
- Que signifie le code 404 ?
- Ressource introuvable.
- Différence entre 401 et 403 ?
- 401 : non authentifié (identité absente ou invalide). 403 : authentifié mais non autorisé à accéder à la ressource.
- Que signifie la famille de codes 5xx ?
- Une erreur côté serveur.
- Quel code renvoyer après la création d'une ressource via POST ?
- 201 Created, idéalement avec l'URL de la nouvelle ressource dans l'en-tête Location.
- Donnez un exemple d'URL REST pour la commande 17 d'un client 42.
- /clients/42/commandes/17, avec des noms de ressources au pluriel et sans verbe dans l'URL.
- Quel est le rôle de HTTPS ?
- Chiffrer et authentifier les échanges grâce à TLS pour empêcher l'espionnage et la modification des données en transit.
Glossaire
- API REST
- Style d'interface exposant des ressources via HTTP et des représentations standard.
- Ressource
- Entité identifiée par une URL que l'API permet de manipuler.
- JSON
- Format textuel léger d'échange de données structurées.
- Code de statut
- Nombre à trois chiffres qui indique le résultat d'une requête HTTP.
- Jeton d'authentification
- Chaîne attestant l'identité ou les droits d'un client, envoyée à chaque requête.
- TLS
- Protocole cryptographique qui sécurise HTTPS.