• 12 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 22/07/2020

Comprenez ce qu'est un service web

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Savez-vous que c'est grâce à un service web que vous pouvez aller sur Google et faire des recherches, aller sur les réseaux sociaux ou avoir la météo sur votre smartphone ? Nous allons voir ensemble de quoi il retourne.

Qu'est-ce qu'un service web ?

Un service web est un programme s'exécutant sur un serveur accessible depuis Internet et répondant à des demandes, appelées requêtes.

Par exemple, on fait des requêtes pour interagir avec un service en ligne comme un site e-commerce, un système de paiement, etc. Bref, pour tous les services que l'on utilise au quotidien !

Mais à quoi ressemble une requête ?

C'est une question intéressante, mais aussi complexe. En effet, il a bien fallu se mettre d'accord sur le langage à utiliser pour communiquer avec les services. Mais voilà, un service d'envoi de mails ne fait pas du tout le même travail qu'un service nous renvoyant les pages d'un site Internet. Il semble donc évident que la manière de communiquer ne sera pas la même pour ces deux services. Des protocoles de communication ont donc été mis en place afin de standardiser la communication entre services faisant la même chose.

Les requêtes sont des données qui respectent le protocole de communication et qui sont envoyées au serveur.

Nous avons donc un protocole pour l'envoi de mail (SMTP), la réception de mail (IMAP), les requêtes liées à des ressources web (HTTP), aux transferts de fichiers (FTP), etc.

Le protocole qui va nous intéresser est le protocole nous permettant de communiquer avec un site Internet : le protocole HTTP. Grâce à lui, nous allons pouvoir récupérer et sauvegarder des données sur un service web, ce qui nous permettra de dynamiser le contenu de nos pages web.

Qu'est-ce que le protocole HTTP ?

HTTP signifie HyperText Transfer Protocol. C'est un protocole qui permet de communiquer avec un site Internet. Il va permettre de charger des pages HTML, des styles CSS, des polices de caractères, des images, etc. Mais ce n'est pas tout, le protocole HTTP  nous permet aussi d'envoyer des formulaires et de récupérer et d'envoyer toutes sortes de données depuis ou vers un serveur implémentant ce protocole !

Nous n'allons pas entrer dans le détail du format des requêtes HTTP, car de nombreuses références le font déjà très bien, mais il me semble important de vous parler de deux choses qui vous serviront souvent : les codes HTTP et les méthodes HTTP.

Les codes HTTP

Lorsque vous faites une requête HTTP, cela signifie que vous demandez quelque chose au service web. Or, il est possible que le service web ne comprenne pas ce que vous demandez (par exemple si vous demandez à afficher une page qui n'existe pas). Dans ce genre de situation, il faut que vous puissiez le savoir de manière claire et sans ambiguïté. C'est pour cette raison qu'il existe les codes HTTP. Ils vous permettront d'avoir plus d'informations sur le résultat renvoyé par le service web (succès, erreur...).

Ces codes sont représentés par des nombres ayant chacun une signification particulière. Ils sont répartis dans plusieurs catégories :

  • Les codes de 100 à 199 sont des codes d'information, plutôt techniques et peu utilisés en pratique ;

  • Les codes de 200 à 299 sont des codes de succès. Ils veulent dire que votre requête s'est bien déroulée et vous apporteront une information sur le type de résultat que vous recevez ;

  • Les codes de 300 à 399 sont les codes de redirection. Ils indiquent généralement que le contenu que vous recherchez a bougé ou n'est pas accessible directement ;

  • Les codes de 400 à 499 sont des codes d'erreur liés à l'utilisation du service web (ressource inexistante, authentification requise, pas les bonnes permissions, requête mal construite, etc). Ce sont des erreurs que l'on retrouve fréquemment dans la pratique et pour lesquelles il est bon d'avoir une stratégie de résolution ;

  • Les codes de 500 à 599 sont des codes d'erreur venant du service web (plantage du service, service ne répondant plus, manque de mémoire, etc.). En tant qu'utilisateur du service, vous ne pouvez pas y faire grand-chose, mais de la même manière que pour les erreurs 4xx, il est bon d'avoir une stratégie de résolution.

Voici les codes HTTP les plus fréquents auxquels vous serez probablement confrontés :

  • 200 : indique que tout s'est bien passé ;

  • 201 : indique que tout s'est bien passé et qu'une nouvelle ressource a bien été créée ;

  • 204 : indique que tout s'est bien passé mais qu'aucun résultat n'est renvoyé ;

  • 400 : indique qu'une requête est erronée ; 

  • 401 : indique que l'utilisateur n'est pas authentifié, alors que c'est nécessaire ;

  • 403 : indique que l'utilisateur n'a pas le droit d'accéder à cette ressource ;

  • 404 : indique que la ressource demandée n'existe pas ;

  • 500 : indique que le serveur a subi une erreur interne.

Les méthodes HTTP

Lorsque vous faites une requête HTTP, vous pouvez avoir besoin de demander une ressource (une page HTML ou la météo par exemple). Mais pas seulement ! Vous pouvez aussi avoir besoin de créer une ressource (en envoyant un formulaire pour créer un nouvel utilisateur, par exemple), ou bien d'en supprimer une, etc. 

C'est ce que l'on appelle les méthodes HTTP. Elles permettent d'identifier le type de requête que vous souhaitez faire. Voici les principales méthodes :

  • GET : permet de récupérer des ressources, comme par exemple le temps actuel sur un service de météo ;

  • POST : permet de créer ou modifier une ressource, comme la création d'un nouvel utilisateur sur votre application ;

  • PUT : permet de modifier une ressource, comme le nom de l'utilisateur que vous venez de créer avec POST ;

  • DELETE : Permet de supprimer une ressource, comme un commentaire dans un fil de discussion. 

Qu'est-ce qu'une API

Je ne sais pas si vous vous souvenez, mais au début de ce cours je vous disais qu'il était possible de récupérer ou d'envoyer toutes sortes de données depuis ou vers un service web. Cela signifie que l'on n'est pas limité à la récupération de pages HTML, d'images ou de feuilles de styles CSS. En effet, on développe généralement des services web bien plus complexes, afin de répondre à un vrai besoin métier. Par exemple, un service de météo vous permettra de demander la météo d'une ville précise sur une période donnée. De la même manière, un réseau social vous permettra de rechercher des amis, de poster un contenu, de récupérer une liste des contenus, etc.

Un service web permet donc de faire toute une série de requêtes couvrant les fonctionnalités mises à disposition par le site web ou l'application. C'est ce qu'on appelle une API !

API signifie Application Programming Interface. Il s'agit d'une interface mettant à disposition des points d'accès vers les ressources de l'application. Ainsi, l'API d'un réseau social met par exemple à disposition une ressource contenu qu'il vous est possible de récupérer, de créer ou de supprimer. Cette ressource contient certains attributs comme un titre, une date et un message. Il vous est donc possible d'envoyer des requêtes au service web par rapport à cette ressource. Ainsi, vous pourrez faire une requête de type POST pour demander au serveur de créer une nouvelle ressource de type contenu avec un titre, une date et un message de votre choix.

Il est important de connaître l'API du service web avec lequel vous allez communiquer, car c'est elle qui vous informera sur les requêtes qu'il vous est possible de faire. La plupart des services web connus et accessibles pour les développeurs ont une documentation expliquant comment se servir de leur API. Sinon, si c'est la vôtre, vous ne devriez pas avoir trop de problème à savoir comment communiquer avec 😀 .

En résumé

Dans ce chapitre, vous avez appris :

  • Ce qu'est un service web ;

  • Ce qu'est un protocole de communication ;

  • Comment fonctionne le protocole HTTP ;

  • Ce qu'est une API.

Avec ce que vous venez d'apprendre, vous êtes maintenant en mesure de communiquer avec un service web. Il ne vous reste plus qu'à savoir comment on fait ça en JavaScript, et c'est justement ce que nous allons voir dans le chapitre suivant !

Exemple de certificat de réussite
Exemple de certificat de réussite