24 nov. 2008

Internet != navigateur

Bonsoir !

Si vous êtes là, c’est bien que vous utilisez l’internet. Mais, savez-vous comment il fonctionne ? Comment vous pouvez accéder à tel ou tel site web ? Et bien, moi non plus je n’en connais pas les détails techniques. Cependant, ce que j’ai à dire vous expliquera déjà une bonne partie de ce fonctionnement.

Tout d’abord, il faut bien comprendre que “Internet Explorer©”, “Mozilla Firefox©”, “Opéra©”, “Safari©”, “Chrome©” ne sont que des logiciels, ils ne sont pas l’internet. Il ne faut pas confondre la voiture et le chemin. D’ailleurs, on nomme ces logiciels, des navigateurs internets. Ainsi, ils sont le lien entre votre ordinateur et une partie de l’internet, ils vous permettent principalement d’accéder aux sites web. Mais où sont ces sites web ?

Sur des serveurs, ou des ordinateurs personnels transformés en serveur. Qu’est-ce qu’un serveur ? Il s’agit d’un ordinateur, comme le votre, généralement plus puissant et sans écran individuel, relié en permanence à l’internet, 24h/24h 7j/7j. Qu’est-ce que l’internet ? Le réseau formé par tout les serveurs reliés entre eux par fibres optiques, satellites, câbles téléphoniques, … Pour en connaître l’Histoire, je préfère vous renvoyer ici. Seulement, comment ces ordinateurs communiquent-ils entre eux ?

Comme nous, ils doivent utiliser un dialecte commun. On parlera alors de protocole. Actuellement, le protocole de base de l’internet est le TCP/IP qui a remplacé le NCP de l’Arpanet. Ce protocole, au lieu d’envoyer les messages d’un seul bloc, les fragmente en paquets puis lorsqu’ils sont reçus de les remettre dans l’ordre, c’est le travail de TCP. Quant à IP, il se charge d’acheminer les paquets jusqu’à destination à l’aide de son adresse. Cette adresse peut se trouver sous deux versions différentes, la version 4 composée de 4 chiffres séparés par des points compris entre 0 et 255, ou la version 6 qui peut ressembler à 1fff:0000:0a88:85a3:0000:0000:ac1f:8001 ou son équivalent 1fff:0000:0a88:85a3:0000:0000:172.31.128.1. Cette adresse peut aussi identifier tout autre matériel informatique relié à l’internet.

Et ces messages ? En quoi il consiste ? Et bien, tout dépend du protocole utilisé qui correspond à un service différent. Ainsi, le POP est celui de réception des e-mails, le SMTP de leur envoie ; le FTP est celui de l’envoie de fichiers ; le SSH permet le contrôle à distance d’ordinateur ou de serveur ; le HTTP qui est celui des sites web. C’est celui-ci, signifiant “Hypertext Transfer Protocol”, qui va nous intéresser ici. En effet, ce dernier, contrairement au FTP, permet de dire que telle donnée est ça ou ça (image, son, vidéo, …), ce qui facilite grandement la création de page formatée pour présenter ce contenu. Justement, comme formate-t-on ces pages ?

En même temps que Tim Berners-Lee, ingénieur au CERN, créa le HTTP, il créa également les adresses web et le HTML. L’ensemble forme le “World Wide Web” ou Toile d’araignée mondiale. Ainsi, c’est le HTML, ou “Hypertext Markup Language”, qui permet le formatage des pages. Qu’est-ce donc ? Un langage de programmation de mise en page de données. C’est-à-dire que c’est un langage d’interface entre la machine et l’Homme, un langage commun aux deux, comme le Basic, le Pascal, le Python, le C++, le Java, et tout les autres… Celui-ci permet à l’Homme de dire à la machine comment il souhaite que ses données s’affichent (textes, images, éléments d’autres langages, …). Ainsi, l’exemple suivante permet d’afficher un paragraphe de texte :

<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html>
<head>
<title>
Exemple de HTML
</title>
</head>
<body>
<p>
Ceci est un paragraphe.
</p>
</body>
</html>

Au début, s’ajoutait à ces balises une description plus précise de la présentation souhaitée. Seulement, ces descriptions peuvent se révélées lourdes, inesthétiques et redondantes. Aussi, le W3C a-t-il créé un nouveau langage pour remplir ce rôle, le CSS : “Cascading Style Sheets” ou Feuilles de styles en cascade. Ecrit dans un fichier différent de celui du HTML, il est appelé dans celui-ci par une balise spéciale, fichier pouvant être utilisé par plusieurs fichiers HTML simultanément, et plus précisément dans chaque balise (<p></p> ; <a></a> ; <div></div>…) avec l’attribut “class”. L’attribut étant un moyen de préciser les propriétés de la balise dans laquelle il est appelé.

Ces pages sont alors stockées sur un serveur pour y être demandées par tout ordinateur qui le désirerait. Ainsi, quand vous tapez une adresse web, vous demandez au serveur correspondant de vous envoyer la page HTML souhaitée. Seulement, si vous receviez la page telle quelle, vous auriez le même résultat que pour mon exemple du dessus, le texte brut. Pas très lisible, hein ? Heureusement, vous avez sans doute appeler cette page depuis votre navigateur internet. Or, celui-ci possède, ce que l’on appelle, un moteur de rendu web. Il en existe plusieurs comme Gecko utilisé notamment par “Mozilla Firefox©”, KTHML utilisé particulièrement par “Konqueror©” et à la base du WebCore d’Apple© pour notamment “Safari©”, ou encore Trident de “Microsoft©” pour “Internet explorer©” dans sa version Windows©. Ces moteurs ont pour but d’interpréter la page web que vous avez demandé et de vous permettre de voir et naviguez comme vous le faîtes en ce moment même :p

Seulement, ces pages sont statiques une fois qu’elles sont arrivées chez vous et ont été interprétées. Pour remédier à cela, plusieurs langages ont vu le jour comme le PHP qui sera lui interprété par le serveur, le JavaScript interprété par le navigateur, le ‘Flash’ qui permet de créer des animations, lire de la musique ou des vidéos en direct, et caetera. Il existe même d’autres langages de création de page web qui seront ensuite ‘traduits’ en HTML pour être compris par le navigateur internet. On trouvera par exemple le Python, le Ruby, l’Erlang, et d’autres dont je ne soupçonne même pas l’existence…

La disciple de Sacrieur avait finit de monter son camp à proximité des montagnes des Bworks. Elle était en train de préparer son dîner avant de partir en reconnaissance. Pendant ce temps, la disciple de Sadida était toujours dans la grotte de Barbamouss qui n’avait pas décroché un mot depuis trois jours qu’elle était là. Elle lui avait raconté son rêve divin dans les moindres détails qu’elle arrivait à rassembler, mais il s’était contenté d’aller s’asseoir sur son lit de paille pour méditer. Deux jours que cela durait, la patience de la disciple de la Nature commençait à s’effriter comme neige au soleil. Heureusement, elle avait découvert le potager, plutôt ses ruines, du vieil homme et elle faisait son possible pour le remettre en état. Cela l’occupait en attendant, même si elle ne savait pas trop ce qu’elle attendait, ni pourquoi…

Liens :

Long sommeil, et bon feu !