Vous êtes sur la page 1sur 5

Lecon 2 : REST

REST est un acronyme pour Representational State Transfer. Il s'agit d'un ensemble de contraintes
architecturales qui définissent la façon dont les ressources doivent être exposées sur un réseau. Les services
REST sont basés sur les principes suivants :

- État représenté : Les ressources sont représentées par des URI (Uniform Resource Identifiers).
- Transfert de représentation : Les données sont transférées sous forme de représentations.
- Étatless : Les clients et les serveurs ne conservent pas d'état entre les requêtes.
- Cache : Les clients et les serveurs peuvent utiliser le cache pour améliorer les performances.
- Uniformité : Les opérations sur les ressources doivent être uniformes.

Les avantages des services REST

Les services REST offrent de nombreux avantages, notamment :

- Simplicité : Les services REST sont relativement simples à comprendre et à mettre en œuvre.
- Flexibilité : Les services REST peuvent être utilisés pour exposer une grande variété de ressources.
- Portabilité : Les services REST peuvent être utilisés sur n'importe quelle plate-forme.
- Scalabilité : Les services REST peuvent être mis à l'échelle facilement.

Les inconvénients des services REST

Les services REST présentent également quelques inconvénients, notamment :


- Sécurité : Les services REST peuvent être vulnérables aux attaques si la sécurité n'est pas bien conçue.
- Performances : Les services REST peuvent être moins performants que les services SOAP pour
certaines applications.
- Complexité : Les services REST complexes peuvent être difficiles à comprendre et à maintenir.

Exemples de services REST

Les services REST sont utilisés par de nombreuses applications et services, notamment :

- Les sites Web : Les sites Web utilisent des services REST pour exposer des ressources telles que les
pages, les images et les vidéos.
- Les applications mobiles : Les applications mobiles utilisent des services REST pour accéder aux
données et aux fonctionnalités des serveurs.
- Les services cloud : Les services cloud utilisent des services REST pour exposer leurs ressources aux
clients.
1. Le protocole http
HTTP, ou Hypertext Transfer Protocol, est un protocole de communication utilisé pour transférer des
données sur le World Wide Web. Il est basé sur un modèle client-serveur, où le client envoie une requête au
serveur et le serveur renvoie une réponse.
1
1.1. Fonctionnement

Une requête HTTP est composée de deux parties :

- L'en-tête, qui contient des informations sur la requête, telles que le type de requête, la méthode, l'URI
et les en-têtes HTTP.
- Le corps, qui contient les données à transférer.

Une réponse HTTP est également composée de deux parties :

- L'en-tête, qui contient des informations sur la réponse, telles que le code d'état HTTP, le type de
contenu et les en-têtes HTTP.
- Le corps, qui contient les données transmises par le serveur.
1.2. Méthodes http
HTTP définit une série de méthodes qui peuvent être utilisées pour effectuer différentes actions sur un
serveur. Les méthodes les plus courantes sont les suivantes :

- GET : Récupère une ressource.


- POST : Crée une nouvelle ressource.
- PUT : Met à jour une ressource existante.
- DELETE : Supprime une ressource existante.
1.3.Codes d’état http
Les codes d'état HTTP indiquent l'état de la requête. Les codes d'état les plus courants sont les suivants
:

- 200 OK : La requête a réussi.


- 400 Bad Request : La requête est incorrecte.
- 401 Unauthorized : L'utilisateur n'est pas autorisé à accéder à la ressource.
- 403 Forbidden : L'utilisateur est autorisé à accéder à la ressource, mais il n'a pas les droits nécessaires.
- 404 Not Found : La ressource n'a pas été trouvée.
1.4.Entêtes http
Les en-têtes HTTP sont des informations supplémentaires qui peuvent être transmises avec les requêtes
et les réponses HTTP. Les en-têtes HTTP sont utilisés pour diverses raisons, telles que la définition du type de
contenu, l'encodage des données ou l'authentification des utilisateurs.

Exemple de requête en GET :


GET /index.html HTTP/1.1
Host: example.com

2
Cette requête demande au serveur de retourner la ressource /index.html. L'en-tête Host indique au
serveur le domaine auquel la requête est adressée.

Exemple de réponses http 200:

HTTP/1.1 200 OK
Content-Type: application/json

{
"id": 1234,
"name": "John Doe",
"email": "johndoe@example.com"
}

Cette réponse indique que la requête a réussi. Le code d'état 200 OK indique que la ressource a été
trouvée et qu'elle peut être renvoyée. L'en-tête Content-Type indique que le type de contenu de la réponse est
application/json. Le corps de la réponse contient les informations sur l'utilisateur John Doe..

1.5. Types de contenu

Les types de contenu sont utilisés pour indiquer le type de données contenues dans le corps d'une requête ou
d'une réponse HTTP. Les types de contenu les plus courants sont les suivants :

- text/html : Texte HTML.


- image/png : Image PNG.
- application/json : JSON.
- application/xml : XML.
1.6. Sécurité http
HTTP est un protocole non sécurisé par défaut. Pour sécuriser les communications HTTP, on utilise
généralement le protocole HTTPS, qui est basé sur le protocole SSL/TLS. HTTPS utilise un cryptage pour
protéger les données transmises entre le client et le serveur.

1.7. Versions http

HTTP a évolué au fil du temps. Les versions les plus courantes sont les suivantes :

- HTTP/1.1 : Version actuelle d'HTTP.


- HTTP/2 : Version plus récente d'HTTP qui offre des performances améliorées.

HTTP est un protocole essentiel pour le World Wide Web. Il est utilisé pour transférer des données

entre les clients et les serveurs, et il est la base de nombreux autres protocoles Web, tels que HTTPS,

WebSockets et WebDAV.

2. Enchainement client-serveur

3
L'enchaînement client-serveur est un modèle de communication dans lequel un client envoie une
requête à un serveur et le serveur renvoie une réponse. Le client et le serveur peuvent être des applications
distinctes ou des composants d'une même application. L'enchaînement client-serveur est un modèle de
communication très répandu. Il est utilisé dans de nombreux contextes, tels que :

- Le World Wide Web : Les navigateurs web utilisent le modèle d'enchaînement client-serveur pour
demander des pages web aux serveurs web.
- Les applications mobiles : Les applications mobiles utilisent le modèle d'enchaînement client-serveur
pour accéder aux données et aux fonctionnalités des serveurs.
- Les applications de bureau : De nombreuses applications de bureau utilisent le modèle d'enchaînement
client-serveur pour accéder aux données et aux fonctionnalités des serveurs.

L'enchaînement client-serveur est un modèle de communication efficace et fiable. Il permet de séparer


les tâches de traitement des données des tâches de présentation. Cela permet de simplifier le développement
des applications et de les rendre plus évolutives.

2.1. Fonctionnement

L'enchaînement client-serveur fonctionne de la manière suivante :

- Le client envoie une requête au serveur.


- Le serveur traite la requête et renvoie une réponse au client.
- Le client reçoit la réponse et l'affiche ou la traite.

La requête est généralement composée d'un URI, d'une méthode HTTP et d'un corps de requête. L'URI
indique la ressource à laquelle la requête est adressée. La méthode HTTP indique l'action que le client souhaite
effectuer sur la ressource. Le corps de requête contient des données supplémentaires qui peuvent être utilisées
par le serveur.

La réponse est généralement composée d'un code d'état HTTP, d'un type de contenu et d'un corps de
réponse. Le code d'état HTTP indique l'état de la requête. Le type de contenu indique le type de données
contenues dans le corps de la réponse. Le corps de la réponse contient les données renvoyées par le serveur.

2.2. Enchainement client-serveur asynchrone

L'enchaînement client-serveur peut être asynchrone ou synchrone. Dans l'enchaînement client-serveur


asynchrone, le client envoie la requête au serveur et continue à fonctionner en attendant la réponse. Dans
l'enchaînement client-serveur synchrone, le client attend la réponse du serveur avant de continuer à
fonctionner.

L'enchaînement client-serveur asynchrone est plus efficace que l'enchaînement client-serveur


synchrone. En effet, le client peut continuer à fonctionner en attendant la réponse du serveur. Cela permet de
réduire la latence du système.
4
3. URL

Une URL, ou Uniform Resource Locator, est une chaîne de caractères qui identifie une ressource sur
le World Wide Web. Elle est composée de plusieurs éléments, dont un protocole, un nom de domaine et un
chemin. Le protocole est le type de transfert de données utilisé pour accéder à la ressource. Les protocoles les
plus courants sont HTTP (Hypertext Transfer Protocol) et HTTPS (Hypertext Transfer Protocol Secure). Le
nom de domaine est le nom d'un serveur ou d'un réseau sur Internet. Il est généralement composé de plusieurs
mots séparés par des points. Le chemin est la partie de l'URL qui identifie la ressource sur le serveur. Il peut
être composé de plusieurs éléments, tels que des dossiers et des fichiers. L'URL suivante est un exemple d'URL
:

https://www.example.com/index.html

Cette URL identifie une ressource sur le serveur www.example.com. La ressource est un fichier HTML
nommé index.html.

3.1. Structure d’une URL

Une URL est généralement composée des éléments suivants :

Vous aimerez peut-être aussi