Les bases du Web

I. Aspects historiques :

I.1 Arpanet :

Dans les années 1960 aux Etats-Unis, des chercheurs mettent au point un réseau permettant de mettre en communication des ordinateurs situés dans des universités de part et d'autres du pays. C'est le réseau ARPANET.

Sites d'Arpanet en 1974

Arpanet

Le 29 octobre 1969, le premier message est envoyé sur le réseau. Il s'agit du mot login qui est transmis entre l'université de Californie à Los Angeles (UCLA) et l'Institut de recherche de Stanford. Pour la petite histoire, en fait seules les lettres lo sont transmises : après celles-ci le système a planté !

Ce réseau a été conçu en pleine Guerre Froide et présente la particularité d'être disribué : la destruction (lors d'une guerre hypothétique) d'un centre de connexion ne met pas en cause l'ensemble du réseau.

Trois types de réseaux : centralisé (ou étoilé), décentralisé et disribué

Réseaux

ARPANET est l'ancêtre d'Internet. On regroupe sous ce terme l'ensemble des possibilités d'échanges offertes par des postes en réseau : diffusion de pages web (le world wide web), envoi d'e-mails, partage de fichiers...

L'un des protocoles de transmission développé dans les années 1970, le protocole TCP/IP est encore en usage aujourd'hui.

I.2 Le _World Wide Web_ :

Dans la foulée d'ARPANET, de nombreuses inventions voient le jour.

L'idée du message électronique en ainsi née en 1972 dans l'esprit de Ray Tomlinson. Celui-ci proposa d'utiliser le symbole @ afin de séparer le nom de l’utilisateur de celui de la machine sur le réseau ARPANET.

La première adresse de courrier électronique fut ainsi tomlinson@bbn-tenexa.

L'Europe n'est pas en reste. Le projet français Cyclades mené par Louis Pouzin développe plusieurs outils et le web naît finalement en Suisse au CERN

C'est dans ce centre spécialisé sur la recherche nucléaire que Tim Berners-Lee et Robert Cailliau développent des concepts encore utilisés aujourd'hui : des pages en HTML mélangeant du texte, des liens, des images, adressables via une URL et accessibles via le protocole HTTP.

La première page internet de l'histoire est toujours accessible : http://info.cern.ch/hypertext

First Web Page

En 1993, le premier navigateur web, Mosaic, apparaît suivi en 1995 de Netscape Navigator. Ce dernier a disparu en 2008 mais a donné naissance à Mozilla Firefox.

Aujourd'hui le web est répandu sur la Terre entière. Une estimation donne près de 4,5 milliards d'utilisateurs en juin 2019 (https://internetworldstats.com/stats.htm).

Utilisaeturs d'Internet par pays en 2006 (Wikipedia)

Utilisateurs d'Internet

II. Vocabulaire :

On trouvera ci-dessous ces définitions succinctes de certains termes liés à internet :

  • URL

    pour Uniform Resource Locator. Adresse d'une ressource sur le réseau. Une URL est organisé en sections : protocole (1), domaine (2), sous-dossier(s) (3), ressources (4) et parfois d'autres informations (numéro de la page...) :

URL

Une adresse/URL peut être absolue ou relative. Dans le cas absolu, on donne alors l'ensemble de l'adresse en partant de l'origine. Dans le cas relatif (a utiliser préférentiellement) on donne l'adresse de la ressource par rapport au dossier de travail en cours.

Folders

Par exemple si l'on est dans le dossier Holidays on pourra accéder au dossier 2006_01 New Years en faisant :

  • en adresse absolue : C:/Pictures/Holidays/2006_01 New Years
  • en adresse relative : /2006_01 New Years
  • Client

    Le poste ou le logiciel qui demande les ressources au serveur. Typiquement, notre ordinateur ou smartphone ou leur navigateur

  • HTTP

    pour HyperText Transmission Protocol. C'est le protocole, développé au CERN par Tim Berners-Lee, utilisé pour l'échange de données entre un serveur (le site que vous consultez) et un client (votre navigateur).

    Le protocole HTTP permet différents types de requête entre les postes. Retenons :

    • GET

      C'est la méthode la plus courante pour demander une ressource. Le client demande au serveur de lui transmettre une ressource (une page internet par exemple)

    • POST

      Le client souhaite transmettre des données au serveur (un identifiant de connexion et un mot de passe apr exemple)

Aujourd'hui, le protocole HTTP est souvent remplacé par HTTPS qui apporte de la sécurisation des échanges en assurant le client qu'il est bien connecté au site qu'il souhaite (intervention d'un tiers de confiance) puis en cryptant les données.

HTTPS

  • IP

    pour Internet Protocol (Adresse). C'est l'un des identifiants d'une machine sur le réseau.

    Dans sa version 4 (IPv4), la plus couramment utilisée, une adresse IP est un nombre de 4 octets (32 bits). On l'écrit le plus souvent sous sa forme décimale, par exemple 64.82.250.2 où chacun des nombres peut aller de 0 à 255.

IP

Avec 32 bits on peut donc écrire $2^32 = 42\:949\:672\:96$ adresses ! Ce n'est pourtant pas suffisant. Nous sommes en train de passer à l'IPv6 qui code les adresses avec 128 bits ce qui donne près de $3,403\times10^{38}$ adresses !

Une IP peut être publique ou privée selon le type de réseau auquel la machine est connectée.

  • MAC

    pour Media Access Control. Adresse physique d'une interface réseau (carte Wifi, port Ethernet...).

    Cette adresse permet d'identifer de façon unique une interface connectée à un réseau. Une adresse MAC s'écrit avec 48 bits (6 octets). On les donne le plus souvent en notation hexadécimale. Par exemple 5E:FF:56:A2:AF:15.

    A ne pas confondre avec l'adresse IP qui peut être identique pour deux postes s'ils sont sur des réseaux différents. L'adresse MAC est toujours unique. A titre de comparaison, on pourrait dire que l'adresse IP est l'identifiant d'un appartement dans un immeuble ("2ème étage gauche") et l'adresse MAC est l'identité du propriétaire ("Jean Dupont"). Il y a dans le monde plusieurs "2ème étage gauche" (selon les immeubles) mais il n'y a qu'un "Jean Dupont" (quoique !)

  • TCP

    pour Transmission Control Protocol. L'un des protocoles permettant d'adresser un message sur un réseau.

    Une session TCP fonctionne en trois phases :

    • l'établissement de la connexion (par une poignée de main (handshaking) en trois temps
    • les transferts de données
    • la fin de la connexion (par un handshaking en quatre temps)

      Un handshaking consiste en un échange de données entre les deux postes. Par exemple, pour la connexion, handshaking en trois temps on a :

    1. Le client fait une demande de synchronisation
    2. Le serveur accuse réception de cette demande de synchronisation (acknowledgement synchronisation)
    3. Le client accuse réception de cet accord (acknowledgement)

      Ces trois étapes étant remplie, les deux postes échanges des données.

  • Ethernet, Wifi...

    Méthode de transmission des données. Les données doivent se déplacer concrètement. Elles peuvent le faire par onde radio (wifi, bluetooth...), signaux électriques (ethernet), lumière (lifi : https://fr.wikipedia.org/wiki/Li-Fi)

  • HTML

    pour HyperText Markup Language. Langage dans lequel sont écrites les pages web.

    C'est un langage à balises. Cela signifie que les différents éléments (textes, images, hyperliens) sont placés entre des balises du type <XX> (balise ouvrante) et </XX> (balise fermante). Par exemple, le code :

      <h1> Ceci est un titre </h1>
      <p> Et ceci est un paragraphe </p>
    

    donne :

Ceci est un titre

Et ceci est un paragraphe

Le HTML permet de coder le contenu, le fond, de la page web (textes, tableaux, liens, images, vidéos...). Il est transmis par le serveur et interprété par le navigateur. Ainsi deux navigateurs différents (Firefox et Chrome par exemple) n'interpréteront pas forcément le même code HTML de la même façon.

  • CSS

    pour Cascading Style Sheet ou Feuille de Style en Cascade. Langage dans lequel sont mises en forme les pages web.

    Un fichier CSS contient les informations de décoration de la page web. Si l'on voit le HTML comme le fond alors le CSS est la forme.

On a par exemple :

 p {
    color : #3eba56;
    text-align: center;
 }

permet de mettre les paragraphes (balises p du HTML) dans une couleur et de centrer le texte.

A l'instar du HTML, le CSS est interprété par le navigateur du client.

  • Javascript

    Langage de programmation rendant les pages interactives. Il permet par exemple de changer la couleur d'un texte lorsque l'on le survole à la souris.

    Le javascript n'a rien à voir avec le java.

    Il est lui aussi exécuté par le navigateur côté client.

HTML CSS JS

HTML CSS JS

  • PHP

    pour HyperText Preprocessor. Langage de programmation permettant de générer des pages HTML.

    Imaginez un moteur de recherche. Ses serveurs ne contiennent pas les pages web correspondant à toutes les demandes possibles des utilisateurs... Lorsque l'on fait une requête, la page de résultats est générée automatiquement par le serveur et envoyée au client. C'est ce que fait le PHP.

    Le PHP est donc éxécuté côté serveur. Le navigateur du client ne reçoit normalement jamais de PHP (quand bien même la page chargée se termine par .php)

PHP

Fonctionnement PHP