Techniques de Programmation pour Internet

Année Spéciale Informatique

ENSIMAG 2003 - 2004

James L. Crowley

Séance 1

19 janvier 2004

Introduction à l'Internet et ces Protocoles

Plan :

Debut du page

Organisation

Les notes et les exemples sont disponibles surs le web :

http://www-prima.imag.fr/Prima/jlc/Courses/Courses.html

Objectifs du cours PSW

Debut du page

Plan provisionnel des séances

Debut du page

Introduction au World-Wide Web

World-Wide Web : système d'information hypermédia.

Un peu d'histoire :

Hypertexte

Debut du page

Le concept d'hypermédia est né dans les années 1930 dans les idées de Vanevar Bush. Bush etait Président de MIT 1929-39. Ensuite il a créé un agence gouvernementale pour financer la recherche. Pendant la guerre de 1939 - 1945, cette agence a lancé les projets technologique comme l'invention de RADAR et la bombe atomique. Dans l'après-guerre, Bush a proposé la création du National Science Foundation Américaine, pour financer la recherche de base. En 1945 Bush a publié un article populaire dans lequel il a proposé un bureaux mécaniques qui s'appellent la "Memex". Memex fut une sorte de ordinateur personnel avec les références croisés des documents.

En 1960, Ted Nelson a démontré un système de Hypermédia dénommé Xanadu. Mais le système etait MonoUtilisateur, et l'interaction etait fait par texte (le souris n'etait pas encore inventé, et le mémoire pour un écran bitmap etait hors de prix. ). Il a fallu l'Internet et l'interaction "GUI" pour son réussit.

Hypertexte & Hypermédia

hypertexte : document-texte contenant des liens vers d'autres parties du document ou vers d'autres documents lien hypertexte ("hyper-lien") : formé d'une ancre, mot, groupe de mots, images, ... mis en évidence et d'une adresse vers le document cible

document hypermédia : document hypertexte contenant en plus des images, du son, de la vidéo.

L'Internet et ces protocoles

Debut du page

En 1957, en réaction de Sputnik, les Américains ont créé une agencede recherche avancé nommé "Advance Research Projects Agency" (ARPA).L'ARPA a entrepris les recherche considéré "High Risk High Payoff"avec des perspectives de 10 a 50 ans.En 1960, J.C.R. Licklider a publié un article populaire"Man Machine Symbiosis" dans lequel il a argumenté pourun réseau mondial d'ordinateurs. En 1662-1964, Licklider a dirigé l'ARPA. Un de ces premier projets etait un réseau d'ordinateurs : L'ARPA net.

En 1969 L'ARPA Net a lié Univ. California at Berkley, Univ. California at Los Angeles, Stanford Research Institute et Univ of Utah. par 1971 l'Arpanet été composé de 13 ordinateurs avec les noeuds aux USA, Angleterre et France. Sa croissance etait très rapide, avec 57 noeuds en 1977. Le premier Courrier Électronique (E-Mail) fut testé en 1971. En 1975 il y avait 1000 utilisateurs du E-Mail sur une centaine d'ordinateurs. En 1985, l'Arpanet est devenu NSFnet. En 1988, une loi proposée par le sénateur Al Gore a ouvert le NSFnet au monde et aux organismes Commerciales. Le NSFnet est devenu l'"Internet".

L'Internet est un réseau mondial d'ordinateurs communicants par les messages codés en "packet" selon le protocole "IP". (Internet protocole). Les communications sont gérées par un protocole : "Transfer Control Protocol".

Les concepts et protocoles de l'Internet sont définis dans les RFC ("Request for Comment"). Ceci est une tradition datant de l'année 1969 au début de l'ARPANET. Les RFC sont gérés par la "Internet Architecture Board" (IAB).

Le IAB publie les RFC de spécification intitulé "Internet Official Protocol Standards" (IOPS). L'Internet est défini par les IOPS. Les plus récents est RFC 2300 (May 1998).

Le Web

Debut du page

Le "World Wide Web" (WWW) fut né en mars 89 à l'initiative de Tim Berners-Lee pour la communication au sein de la communauté scientifique du CERN. Son nom etait le "Mesh". Décembre 1990, un premier prototype fut réalisé. Novembre 1992, 26 serveurs etait disponibles Février 1993 le navigateur "Mosaic" etait distribué gratuitement par NCSA Mars 1994, Netscape fut fondée (au nom "Mosaic Communications Corp). L'été 1994 il y avait 1500 serveurs. Le W3C (World Wide Web Consortium) été fondé par CERN et MIT à fin de gérer WWW. En 1995, CERN a donnée le contrôle du W3C au INRIA. 1995 - Microsoft a sorti "Internet Explorer", Netscape a sorti Netscape 2.0.

Définition officielle du WWW :

"wide-area hypermedia information retrieval initiative aiming to give universal access to a large universe of documents "

Les Concepts Clefs :

HTTP : HyperText Transfer Protocol - le protocole de communication de documents de Hypermédia

HTML : Hyper Text Markup Language - Language de composition de la présentation d'information.

Les Protocoles IP et TCP

Debut du page

IP : Internet Protocol - "A Connectionless, best-effort, Packet Switching Protocol".

Définit par RFC 791 en septembre 1981. Concu pour la transmission de "DataGrams" (Packets) entre machines au travers un réseau.

TCP: Transmission Control Protocol - A flow controlled, connection oriented, end-to-end reliable protocol designed to use IP. TCP est defini par RFC 793, (1981). TCP fourni une canaux de communication entre processus. TCP ajout un "port" au addresses des machines. Il peut fonctionner au travers les sortes de connections tres varié.

HTTP: HyperText Transfer Protocol. Le protocole HTTP est un protocole client/serveur permettant l'échange rapide de données pour les systèmes d'information intégrant des ressources distribuées de type multimédia.

FTP : File Transfer Protocol. Une protocol de communication de fichiers

MIME : Multipurpose Internet Mail Extension

Debut du page

Le format MIME est le format de transfert des informations de type multimédia. A l'origine, Internet E-mail etait definit uniquement pour l'ascii, par RFC 822. RFC 2045, 2046, 2047 et 2048 et 2049 ont definit une ensemble d'extensions connus comme MIME afin de communiquer les messages de format hybrids.

MIME etait adapté pour le WWW afin de permetre une contenus multi-média.

Message MIME :

Message = entête + corps

Entete = Mime-version + Content Type + Content Transfer Encoding + Content ID + Content Desciption.

Type du contenu

Autres paramètres du type

TEXT

APPLICATION

IMAGE: jpeg / gif

AUDIO: basic (PCM, 8bits, 8kHz, monocanal)

VIDEO : mpeg

MESSAGE

MULTIPART

Codage de caractères accentués

Mime-Version: 1.0
Content-Type: text/plain ; charset=ISO-8859-1
Content-Transfer-Encoding: 8BIT
é è ç ô î

Codage pour une image

Mime-Version: 1.0

Content-Type: image/tiff ; name=monimage.tiff

Content-Transfer-Encoding: base64

Codage multi-parties

Mime-Version: 1.0
Content-Type: multipart/mixed ;
boundary="PART-BOUNDARY=.19801081431.ZM7315.raminis"
--PART-BOUNDARY=.19801081431.ZM7315.raminis
Content-Type: text/plain; charset=us-ascii
--PART-BOUNDARY=.19801081431.ZM7315.raminis
Content-Description: Text
Content-Type: text/plain ; name="monfichier.txt"
; charset=us-ascii
--PART-BOUNDARY=.19801081431.ZM7315.raminis
Content-Description: JPEG Image
Content-Type: image/jpeg ; name="monimage.jpg"
Content-Transfer-Encoding: base64
...

Universal Resource Identifier (URI)

Debut du page

URI - Universal Resource Identificateur

URL - Universal Resource Locator

Exemple : pour les URL de HTTP, HTTP est la scheme d'adressage.

URN - Uniform Resource Name

A persistant, globally unique name assigned to an object. Réalisé par une service de nommage qui associe une URN a une URL.

URI Syntaxe

URL Syntaxe

Definit par RFC 1738 et 1808.

Les exemples des "Schemes"

FTP - File Transfer Protocol (RFC 959).

HTTP : HyperText Transfer Protocol (HTTP).

Port par defaut - 80.

telnet : Une scheme de terminal a distance.

Exemples d'URL

file://
file:///Macintosh HD/Jim/WWW/jlc.html
ftp://ftp.imag.fr
news:imag.ragot
http://www-ufrima.imag.fr/
http://www-ufrima.imag.fr/FORMATION/DESS-GI/INFO-PLUS/
Plaquette/dessgi-plaquette.html#Association
telnet://babbage.imag.fr
http://cgest.grenet.fr/cgi-bin/a?name=Crowley

IP Address : une adresse de 32 bits qui est un identificateur unique pour chaque nÏud du réseau Internet. Les formes, défini en RFC 791, sont de la forme

A.B.C.D 

ex : le www.w3.org est 18.23.0.22

L'Amphi E de l'ENSIMAG est 195.221.228.31

Le DNS de l'ENSIMAG est 195.221.228.2

DNS : Domain Name Server - Crée en 1984. Actuellement définit par RFC 1034 et RFC 1035. Les formes symboliques de l'URL sont transformées en adresse exacte par un serveur de noms (le DNS). Le nom symbolique permet la migration des services entre machines physiques. (Par exemple www-prima.imag.fr vient de passer de pandora.imag.fr à sinope.imag.fr sans que les acess soit perturbé).

Les "Top Level Domaines" (TLD) sont la partie la plus abstrait des URLs. Il existe les TLD pour les pays (ccTLD) et les TLD génériques (gTLD). Les ccTLD sont gérés par les autorités national de chaque pays.

Les gTLD sont définis par RFC 1591 comme :

edu - "Education" - Réservé au Universités

com - "Commercial" - les organisations commerciaux (indépendant du pays).

net - "Network" - Les administrateurs des réseaux et les fournisseurs de services de réseau (Internet service providers).

gov - "Governmental" - Les agences de la gouvernement Américain.

Pour les autres pays, il faut le code du pays. Par exemple, en France en trouve

*.gouv.fr

mil - "Military" - Le militaire des États-Unis

int - "International" - Les organismes internationaux crée par traité entre pays.

Exemple : La nations unies, ou la Commission Européenne.

org - Organisation qui sont ni commerciaux, ni gouvernementaux

HTTP : Hyper Text Transfert Protocole

Debut du page

Modèle client-serveur pour le transfert des documents hypertextes.

Protocole utilisé par les serveurs WWW depuis 1990.

Échange de messages codés dans un format similaire au type MIME.

Pourquoi un nouveau protocole?

URL = Uniform Ressource Locator

method://[User [ : Password ] @]machine[:port]/fichier[#ancre|?params]

file accès local ou protocole FTP

ftp protocole FTP

http protocole HTTP

telnet session interactive TELNET

gopher protocole GOPHER

wais version WAIS du protocole Z39.50

news protocole NTTP

mailto adresse de courrier électronique

Exemple :

On peut exécuter des commandes Unix dans un page html.

Le page html suivant execute le commande shell "mailto".

test.html

<HTML><TITLE>
Send me mail
</TITLE>
<BODY>
Click here to <A HREF="mailto:jlc@imag.fr">send me email</A></B>
</BODY>
</HTML>

Exemples d'URL

file://
file:///Macintosh HD/Jim/WWW/jlc.html
ftp://ftp.imag.fr
news:imag.ragot
http://www-ufrima.imag.fr/
http://www-ufrima.imag.fr/FORMATION/DESS-GI/INFO-PLUS/
Plaquette/dessgi-plaquette.html#Association
telnet://babbage.imag.fr
http://cgest.grenet.fr/cgi-bin/a?name=Crowley&prenom=James
cgest.grenet.fr est traduit en numéro
IP par une "Name_Serveur".

cgest.grenet.fr est traduit en numéro IP par une "Name_Serveur".

exemple d'un numéro IP : 195.221.224.119 (ima-118.imag.fr)

Les requêtes URL Transit l'Internet

S : Serveur HTTP C : Client 1, 2 : Machines intermédiaires.

Les machines intermédiares disposent d'un cache.

Quelques serveurs HTTP

Serveur Plate-Forme(OS) Caractéristiques.
Apache Unix Directives d'insertion, accès restreint par mot de passe, nom de domaine, adresse IP, support de SSL, gratuit
Microsoft WinNT Support de SSL, interface graphique, support produit Microsoft
Netscape WinNT/Unix Archivage des accès, directives d'insertion, accès restreint par mot de passe, nom de domaine, adresse IP, support de SSL, interface graphique
NCSA Unix Directives d'insertion, accès restreint par mot de passe, nom de domaine, adresse IP, gratuit chez O'Reilly

Source : "http://www.netcradt.com/survey/"

Installation d'un serveur HTTP

  1. Installation du démon,
  2. Configuration du serveur (fichier http.conf ),
  3. Création des pages (au moins la première),
  4. Exécution du démon.

Exemple : Configuration du démon Apache.

Configuration du serveur Apache (1)

Connexion HTTP directe

Debut du page

Transaction HTTP:

En-tête de la requête HTTP

From Contient l'adresse électronique de l'utilisateur-client

If-Modified-Since Permet à la méthode GET d'accéder à la ressource si celle-ci a été modifiée depuis la date donnée

Referer URL d'origine de la requête

User-Agent Informations sur le client (pour maintenir des statistiques ou adapter la réponse selon le client)

Descriptif de la requête HTTP

Accept Liste des types MIME supportés par le client

(exemples : image/gif, image/jpeg )

Content-Encoding Description du codage appliqué au corps de la requête

Content-Length Taille en octets du corps de la requête

Content-Type Le format MIME du corps de la requête