Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente |
reseaux:internet:rest [2022/08/06 08:52] – [1. Le modèle client-serveur du Web] phil | reseaux:internet:rest [2022/08/06 09:00] (Version actuelle) – [2. Le nommage] phil |
---|
| |
==== 2. Le nommage ==== | ==== 2. Le nommage ==== |
<note>Chaque ressource du Web est identifiée par une **valeur unique appelée URI** (**U**niform **R**esource **I**dentifier). Si l’URI contient des caractères internationaux (comme les lettres accentuées ...) il est appelé IRI (International Resource Identifier).</note> | <callout type="primary" icon="true">Chaque ressource du Web est identifiée par une **valeur unique appelée URI** (**U**niform **R**esource **I**dentifier). Si l’URI contient des caractères internationaux (comme les lettres accentuées ...) il est appelé IRI (International Resource Identifier).</callout> |
| |
Les URI permettent de désigner une ressource de manière non ambigüe, c'est-à-dire que l'on ne retrouvera pas le même URI pour désigner deux ressources différentes. Par construction, la structure de l’URI est hiérarchique, ce qui permet de créer des identificateurs uniques de manière distribuée. | Les URI permettent de désigner une ressource de manière non ambigüe, c'est-à-dire que l'on ne retrouvera pas le même URI pour désigner deux ressources différentes. Par construction, la structure de l’URI est hiérarchique, ce qui permet de créer des identificateurs uniques de manière distribuée. |
| |
<note>Si vous voulez identifier une ressource, vous devez posséder une séquence unique : un numéro de téléphone, un numéro de sécurité sociale, un nom de domaine. En y ajoutant quelque chose d'unique pour nous, cela crée un identifiant globalement unique.</note> | <callout type="primary" icon="true">Si vous voulez identifier une ressource, vous devez posséder une séquence unique : un numéro de téléphone, un numéro de sécurité sociale, un nom de domaine. En y ajoutant quelque chose d'unique pour nous, cela crée un identifiant globalement unique.</callout> |
| |
Par **exemple**, on a une image que l'on veut identifier, on peut l'appeler | Par **exemple**, on a une image que l'on veut identifier, on peut l'appeler |
Les URI formalisent ce principe. Le [RFC 3986] explique comment ils peuvent être construits. | Les URI formalisent ce principe. Le [RFC 3986] explique comment ils peuvent être construits. |
| |
<note warning>Un URI commence par un **schéma** indiquant l’autorité de nommage, suivi d’une **valeur d’autorité** puis d’**un chemin** dans l’espace d’autorité. Des caractères comme les ":" ou les "/" sont utilisés pour améliorer la lisibilité de l'URI.</note> | <callout icon="fa fa-hand-stop-o" color="red" title="IMPORTANT">Un URI commence par un **schéma** indiquant l’autorité de nommage, suivi d’une **valeur d’autorité** puis d’**un chemin** dans l’espace d’autorité. Des caractères comme les ":" ou les "/" sont utilisés pour améliorer la lisibilité de l'URI.</callout> |
| |
{{ :reseaux:internet:schema_nomage.png?nolink&500 |}} | {{ :reseaux:internet:schema_nomage.png?nolink&500 |}} |
Personne d’autre dans l’univers ne pourra identifier ses ressources avec cette chaîne de caractères puisque //example.com// m’appartient. Je dispose donc d’un espace de nommage infini sous //example.com// qui me permet de désigner l’ensemble infini de ressources sans que personne d’autre ne puisse prendre les mêmes noms. | Personne d’autre dans l’univers ne pourra identifier ses ressources avec cette chaîne de caractères puisque //example.com// m’appartient. Je dispose donc d’un espace de nommage infini sous //example.com// qui me permet de désigner l’ensemble infini de ressources sans que personne d’autre ne puisse prendre les mêmes noms. |
| |
<note warning>Un URI est une construction administrative permettant d’attribuer un identifiant unique global à une ressource spécifique.</note> | <callout type="primary" icon="true">Un URI est une construction administrative permettant d’attribuer un identifiant unique global à une ressource spécifique.</callout> |
| |
L’URI a pour but de facilement nommer une ressource, de pouvoir lier les ressources entre elles pour former cette toile d’araignée mondiale. Le schéma définit à la fois l'espace de nommage de l'autorité et son format. Une adresse IP ou un nom de domaine comme autorité est à la fois un moyen d'assurer l'unicité globale, mais également de savoir comment accéder à la ressource. | L’URI a pour but de facilement nommer une ressource, de pouvoir lier les ressources entre elles pour former cette toile d’araignée mondiale. Le schéma définit à la fois l'espace de nommage de l'autorité et son format. Une adresse IP ou un nom de domaine comme autorité est à la fois un moyen d'assurer l'unicité globale, mais également de savoir comment accéder à la ressource. |
| |
<note important>Un sous-ensemble d’URI peut être directement utilisé pour localiser la ressource, c’est-à-dire trouver sur quel serveur se trouve la ressource et comment y accéder. Il s’agit d’une **URL** (**U**niform **R**esource **L**ocator) utilisée par les navigateurs Web. \\ Pour bien comprendre la différence entre URI et URL : <html><a href="https://www.journaldunet.fr/web-tech/developpement/1203023-quelle-est-la-difference-entre-uri-url-et-urn/#:~:text=Le%20terme%20URI%20est%20l,signifie%20Identifiant%20de%20ressource%20uniforme.&text=Il%20s'agit%20de%20l,1%20Rue%20de%20la%20mairie." target="_blank">URI vs URL</a></html></note> | <callout type="warning" icon="true">Un sous-ensemble d’URI peut être directement utilisé pour localiser la ressource, c’est-à-dire trouver sur quel serveur se trouve la ressource et comment y accéder. Il s’agit d’une **URL** (**U**niform **R**esource **L**ocator) utilisée par les navigateurs Web. \\ Pour bien comprendre la différence entre URI et URL : <html><a href="https://www.journaldunet.fr/web-tech/developpement/1203023-quelle-est-la-difference-entre-uri-url-et-urn/#:~:text=Le%20terme%20URI%20est%20l,signifie%20Identifiant%20de%20ressource%20uniforme.&text=Il%20s'agit%20de%20l,1%20Rue%20de%20la%20mairie." target="_blank">URI vs URL</a></html></callout> |
| |
Le schéma HTTP est pratique, car il peut se lire également comme un URL. Ce schéma donne : | Le schéma HTTP est pratique, car il peut se lire également comme un URL. Ce schéma donne : |
| |
==== 3. Serveur sans état ==== | ==== 3. Serveur sans état ==== |
<note>Le principe REST permet de concevoir des serveurs évolutifs. **Un serveur doit être sans état**, ce qui signifie qu’**il ne conserve pas d’information après avoir répondu à une demande d’un client**. Cela permet de simplifier le traitement dans le serveur qui doit traiter les requêtes d'un grand nombre de clients.</note> | <callout type="primary" icon="true">Le principe REST permet de concevoir des serveurs évolutifs. **Un serveur doit être sans état**, ce qui signifie qu’**il ne conserve pas d’information après avoir répondu à une demande d’un client**. Cela permet de simplifier le traitement dans le serveur qui doit traiter les requêtes d'un grand nombre de clients.</callout> |
| |
Cela impose que l’état soit situé du côté du client. Cet état est alimenté à partir des données structurées que le client reçoit du serveur. Ainsi, lorsqu’un client demande une page Web, celle-ci peut contenir d’autres URI pour la compléter, par exemple des images, des feuilles de style, des scripts, etc. | Cela impose que l’état soit situé du côté du client. Cet état est alimenté à partir des données structurées que le client reçoit du serveur. Ainsi, lorsqu’un client demande une page Web, celle-ci peut contenir d’autres URI pour la compléter, par exemple des images, des feuilles de style, des scripts, etc. |