Protocoles
En particulier les protocoles du web.
Internet vs web
Il ne faut pas confondre Internet et le web: Internet c’est l’ensemble des câbles et des connexions, les machines, l’infrastructure qui constitue le réseau physique. Le web, c’est une couche navigable.
Internet
Internet est un réseau des réseaux: des sous-réseaux qui se sont rejoint grâce à des protocoles communs.
Deux protocoles fondamentaux (généralement couplés mais en réalité distincts): TCP/IP. Ces protocoles permettent de transférer de l’information sur le réseau.
Protocole IP
L'Internet protocol établit des règles d’adressage:
- définit la taille (ex. maximum de 64 octets, un message sera donc constitué de plusieurs paquets)
- non vérifié (le nombre d’octets n’est pas connu par le protocole IP, l’emplacement et l’ordre des paquets ne sont pas connus non plus)
- non connecté (on ne peut pas vérifier l’emplacement; seule l’adresse dans l’en-tête est connue au moment de l’envoi, mais l’adresse n’est pas validée)
- end-to-end (en-tête où se trouve l’adresse)
- distribué (le protocole implique que tout est tracé; il est impossible d’envoyer un paquet de façon anonyme)
Transmission control protocol (TCP): contrôle la transmission des paquets.
DNS
Les serveurs DNS permettent de convertir des adresses IP (séries de chiffres) en noms de domaines (plus mémorisables, comme exemple.com
).
Les DNS sont hiérarchisés: certains serveurs sont plus importants que d’autres (ils centralisent des informations importantes).
Ce sont des autorités centralisées qui gèrent différents types de noms de domaine (ex. .org
, .ca
.gov
, etc.).
Les nœuds DNS constituent les points les plus faibles dans l’Internet (puisque ce sont des autorités centralisées).
En particulier, les serveurs racine DNS (root server DNS, au nombre de 13)
Le web a 30+ ans
L’invention du web par Tim Berners-Lee répondait à un problème particulier: échanger des documents scientifiques. Il fallait:
- un protocole d’échange (s’envoyer des documents physiquement)
- un format commun (pouvoir lire ce qu’on reçoit)
Le web
Le web est officiellement inventé en 1989, mais son utilisation explose en 1994: les gens commencent à se connecter massivement.
URL
Il faut pouvoir identifier chaque document de façon unique (ex. trouver le document de Sandrine sur la littérature québécoise, mais aussi le document d’Antoine sur le même sujet, néanmoins distinct). Solution: URL (Uniform resource locator), un standard commun aux personnes connectées pour retrouver leurs documents, échanger leurs ressources.
L’URL correspond historiquement au chemin vers le fichier (aujourd’hui, on peut construire des URL programmatiquement, auxquels ne correspondent pas des fichiers réels mais des représentations programmées dynamiquement par des logiciels).
Pages web
Les pages web aujourd’hui sont plus souvent construits à la volée, dynamiquement, avec des applications web. C’est le principe client-serveur: le client demande une ressource, un document, au serveur qui va soit
- donner le document qui existe déjà tel quel derrière le comptoire ou
- préparer, créer le document sur place, spécialement pour le client.
HTTP
Pour partager les documents (en particulier, les documents HTML), il faut une méthode, un protocole: c’est le besoin auquel répond le protocole standard HTTP (Hypertext transfer protocol).
Les principes de base de l’internet et du web ont été développés dans des contextes très différents (militaire pour le réseau internet, avec sécurité, traçabilité et fiabilité; recherche pour le web, avec liberté, ouverture)
Quelques caractéristiques:
- stateless: chaque connexion doit se suffire à elle-même; les requêtes sont toutes séparées, uniques et doivent contenir toute l’information dont on a besoin.
- méthodes:
GET
(requêtes les plus communes)POST
(soumettre de l’information, comme un formulaire)HEAD
(seulement les informations des en-têtes)- …
HTML
Le format des fichiers eux-mêmes: HTML (Hypertext markup language).
Le HTML, c’est une série de balises qui ouvrent et ferment.
Plusieurs formats:
- SGML (Standard Generalized Markup Language).
- XML (Extensible Markup Language): un langage qu’on peut étendre, élargir. On invente les balises que l’on veut, grâce à un «schéma» qui décrit l’usage des balises et qui valide ce qui est permis ou non. Le XML n’est pas tolérant (ridifié par la spécification de sa structure, de son schéma).
- HTML (HyperText Markup Language). Très tolérant (l’affichage du texte se fera même si la syntaxe des balises est incorrecte). La spécification du HTML est maintenue par une fondation, le W3C (World Wide Web Consortium).
- XHTML (Extensible HyperText Markup Language): une alternative au HTML avec la validation du XML par une communauté de chercheurs (n’a pas eu le succès du HTML, lequel n’enforce pas la validation).
- HTML5: spécification du HTML entretenue par le WHATWG (Web Hypertext Application Technology Working Group), à l’opposé parfois du W3C.
Pôles, tensions: compatibilité et tolérance vs structure.