IFT 6800 Atelier en Technologies d’information Chapitre 4 Technologies Internet
Plan du cours 1. Introduction 2. Composantes matérielles d’un ordinateur 3. Systèmes d'exploitation (exemple Unix) et Base de données 4. Technologies Internet 5. Introduction à la programmation Internet 6. Introduction à Java script 7. Java
Internet (2) Permet de faire "parler" deux ordinateurs différents. Communication passe par divers moyens. Gérer le réseau entre les deux ordinateurs - Choix du chemin (routage: liste des nœuds à emprunter) - Gestion des pertes de message - Reconfiguration du réseau
Internet : Infrastructure de Communication Protocoles de communication TCP/IP, UDP/IP Accès aux protocoles BSD sockets, TLI, Sockets Streams Pour désigner un partenaire : numéro IP, numéro de port (socket) Notions de services / protocoles
Internet / Services Besoin de services standards - Service de nom (DNS: Domain Name System) * www.machin.com 129.175.45.33 - Service d'heure (horloge parlante) - Service de transfert de fichier (FTP) - Service de transfert de message: e-mail (SMTP) De nombreux autres services
Pages Web (1) Chaque page est définie par une adresse (URL) Inventé au CERN (Genève) Service Internet - Permet le transfert de pages d'hyper-texte - Informations hypermédia: * texte, des images, des sons, des animations * des liens vers d'autres pages. Chaque page est définie par une adresse (URL) Protocole de Transfert de pages (HTTP) HyperText Transport Protocol Langage de Description de page HyperText Markup Langage
Uniform Resource Locator Permet d’identifier la localisation d’une ressource Internet Forme URL même principe qu'une adresse postale - < Protocole >: //< machine > [: port] < nom-fichier> Http://www-unifr.ch/~chabbi/index.html
HyperText Transfer Protocol Un des protocoles de communication sur le Web Basé sur le paradigme de requête/réponse. Utilise des connexions TCP/IP (Transmission Control Protocol : service fiable de livraison des flux d’octets) pour transférer les données. Principe: - Connexion - Requête du client - Réponse du serveur - Déconnexion
HyperText Markup Lyanguage (1) Décrit le format d'un documents Web Hypertext - Les documents ne sont plus séparées mais reliés les uns aux autres: on peut se déplacer d’un document vers un autre en suivant des liens. Markup - C’est un texte contenant des balises qui conditionnent l’aspect physiques aux textes. Ex: <strong>Gras</strong> Gras Plusieurs versions - dont la plus récente HTML-4.0.1 intégration des scripts, applets, frame, etc.
WEB, Comment ça marche? Client - Une plate forme - Du logiciel: Navigateur/browser - Une connexion au réseau. Serveur - Une plate-forme: ordinateur - Du logiciel: deamon http Appache par exemple - De l'information
WEB, Comment ça marche ? Exemple pas à pas : étape I: En attente d'une requête
WEB, Comment ça marche ? Exemple pas à pas : étape II: Émission d'une requête par un client
WEB, Comment ça marche ? étape III: Analyse de la requête par le serveur Le serveur déchiffre la requête et détermine les actions à réaliser (GET, recherche index.html,…) étape IV: Lecture des autres informations sur le réseau (Si besoin) : par exemple le type du navigateur, … étape V: Exécution de la méthode demandée Pour exécuter GET, httpd recherche dans ces documents (système de gestion des fichiers) étape VI: Acte final: fermeture du fichier, fermeture de la connexion réseau. étape VII: Retour à l’étape I.
Le Mail Service de Messagerie Adresse e-mail - Permet d'envoyer des messages (texte). - Permet de joindre toute sorte de fichiers (attachement). Adresse e-mail Serhanim @ iro.umontreal.ca Nom d’utilisateur Nom du Serveur
Newsgroup Groupe de discussion informatique. - Groupes locaux / mondiaux. - On peut poster des questions / réponses. Très utile pour trouver des informations Chaque groupe est dédié a un sujet précis. - news://comp.lang.postscript * Ordinateurs (comp) * Langages (lang) * Postscript Type du groupe
Intégration Web E-mail, newsgroup et d’autres protocoles sont aujourd'hui intégrés dans le web - Messages des Newsgroup accessibles par des pages web. - Possible de lire son mail par des pages web. Aujourd'hui on désigne sous le nom de Web l'ensemble: - Pages web - Newsgroup - Services de mail
Philosophie WEB
Le Web : une idée de départ Réseau de ressources d’information Clients de consultation Navigateur, browser... Netscape Communicator, Microsof Internet Explorer Serveurs de documents HTTP, démon HTTP, Serveur Web Apache (www.apache.org), Microsoft IIS, Netscape, Cern => Consultation de documents
Les acteurs du web Cern : ? Ncsa : ? W3c : MIT + INRIA + Université de Keio Unifie les développements, Propose les standards IETF : crée des standards Netscape, Microsoft, IBM, Sun… Standard de faits (frames, cookies, plug-ins ’s…) Marc Anderseen + Jim Clarck
Les documents ou ressources Documents structurés La description se fait par l’apparence (sémantique) Les browsers interprètent la structure Une page n’est pas un fichier Ressource Hypertexte de composition Hypertexte de consultation Relations de référence entre les ressources
Retrait et distribution d’information Fonctionnalités essentielles du Web L’unité de retrait n’est pas la page mais la ressource Les documents sont désignés par des URL Les documents sont typés A priori pas de contrôle d’accès (diffusion)
Exécutions sur le serveur Mécanisme : CGI (Common Gateway Interface) Des ressources particulières déclenchent l’exécution d’un programme sur le serveur Le document qui correspond à la requête est le flux standard de sortie de ce programme Possibilité de passer des paramètres Exemple : le Web applicatif !
Exécution sur les clients Les langages Web JavaScript, Jscript Les langages d’animation Flash, VRML... Les langages de programmation Java tcl/tk (safe_tcl), Caml, Python, Perl,
WEB : Architecture documentaire
Architecture WEB Les standards
Pourquoi faire des standards ? Standardiser les formats des documents : Comment présenter une ressource : MIME Identifier de manière unique les documents Comment identifier une ressource : URL Standardiser les échanges Comment récupérer une ressource : HTTP Comment décrire une ressource Description interne : ML Description des relations entre ressources HT Memex Vanovar Bush 1945
Identification des ressources URI/URL (rfc 1738 : 1994) méthode://machine:port/fichier[#ancre | ?paramètres] nom de la machine liste des paramètres (requêtes) méthode protoc. d'accès à la ressource file ress. locale ftp FTP http HTTP telnet TELNET gopher GOPHER wais WAIS news NNTP 80 par défaut <1023 root 1023 < x < 65537 user nom du pointeur ds le doc. HTML Mailto:stephf@lisiflory news:comp.os.research Chemin d'accès (relat. ou absol.)
HTTP HyperText Transfer Protocol 1/0 rfc 1945 (05 1996) : Internet Informal Tim Berners-Lee, Roy T. Fielding, Henry Frystyk 1/1 rfc 2068 (01 1997) : Internet Proposed Standard Fielding, Getty, Mogul, Frystyk, Berners-Lee Connexions persistantes Protocole de type Remote Procedure Call sur TCP Connexion Requête du client Réponse du serveur Déconnexion
HTTP : les acteurs Clients : émet la requête browser, aspirateurs, indexeur, proxy... Serveurs : renvoie la réponse (interprète la req.) Proxys : Joue le rôle de serveur pour un client et de client pour un serveur. Cache les ressources Gateway : Idem que proxy mais invisible pour le client Tunnel : intermédiaire entre un client et un serveur
HTTP : Les requêtes Format d’une requête <Méthode><Chemin><Version_http> [<Champ_optionnel>: <Valeur>] Méthodes GET, HEAD, POST, PUT Champs optionnels User-Agent, If-Modified-Since, Authorization=XXX
HTTP Les réponses Format d’une réponse <Version_HTTP><Code_Réponse><Texte> Content-Type: <Type_MIME> [<Champ_optionnel>: <Valeur>] <Document> Code réponse 100 - 199 : Informatif : 100 Continue 200 - 299 : Requête client réussie : 200 OK, 201 Created 300 - 399 : Requête client redirigée : 301 Moved Permanently, 302 Temporary 400 - 499 : Erreur client : 400 Bad, 401 Unauthorized, 403 forbidden, 404 not found 500 - 599 : Erreur du serveur : 500 Internal Server Error, 501 not implemented
HTTP Texte libre : description en anglais du code de réponse Champs optionnels du serveur Date de la requête : date Date de modification : Last-Modified Identification du serveur : Server Taille du document : Content-Length HTTP/1.1 Connexion « Keep-Alive » Gestion fine des caches Web Négociation du contenu Virtual Hosts
Exemple HTTP telnet lisiaix0 80 >GET /index.html HTTP/1.0 >User-Agent: libwww/2.12 > => HTTP/1.1 200 OK => Date: Fri, 11 Feb 1998 18:30:27 GMT => Server: Apache/1.2.4 => Content-Length: 381 => Content-Type: text/html => => <HTML> => <BODY> => Bonjour tout le monde .... => </BODY> => </HTML>
Les Protocoles
Protocoles : une approche technique C. Application C. Présentation C. Session C. Transport C. Réseau C. Liaison de données C. Physique Applications ftp telnet http gopher pop3 Transport tcp udp Réseau icmp ip igmp Liaison Interface physique arp rarp
Protocoles Client Serveur Requête Réponse Simple Publique Portable
Caractéristiques d’un protocole Nom : Simple Mail Transfert Protocol Rfc : 1830, 1845, 1846 Mode de fonctionnement : Connecté Port de connexion : 25 Commande / Requêtes : EXPN, QUIT, HELO... Client : Eudora Serveur : Sendmail
Protocoles : Exemples
Fonctionement d’un serveur Démon C1 Attendre l’arrivée d’une requête émise par un client C2 Démarrer un nouveau serveur traitant la requête client C3 Retour à C1 Principe de lancement Manuel Inetd StandAlone
Exemple de connexion telnet ifhpserv 25 EXPN stephane.frenot =>220 ifhpserv.insa-lyon.fr ESMTP Sendmail 8.7.1/8.6.9 ready at Sun, 11 Oct 1998 13:52:07 +0200 (METDST) EXPN stephane.frenot =>250 Stephane FRENOT stephf@lisiflory.insa-lyon.fr
Travail H->M : Communication MM Protocoles de routage Nommage de machines DNS Transparence du réseau NFS, NIS Synchronisation XNTP Supervision SNMP
Travail H->M : Prise de contrôle à distance Exécution de commandes sur une machine distante Serveur de calculs Imprimantes réseau Utilisation de plusieurs machines depuis une console La seule application Internet Fonctionne sur tous les systèmes Client et serveur intégrés dans le même système Une socket TCP (port 23) Utilisé pour dialoguer à la main avec les serveurs Les remote commands (rpc) rsh, rexec, rlogin... Les émulations graphiques X11 / Citrix Raconter l ’histoire de citrix Expliquer le serveur X
Communication Inter - Personnes (1/3) Mail - Identification du destinataire – 25 Communication Personne à Personne (1/1) Eudora, Netscape, elm, pine, Mail, mush... Communication Personne à Personnes (1/n) listserv, sympa… Utilisation d’une infrastructure dédiée MX, serveurs POP/IMAP, démons sendmail Communication au sens d’échange d ’information / de point de vus...
Communication Inter - Personnes (2/3) News (Usenet) - Identification de groupe – 119 Communication de groupe (newsgroup) Classification par sujets (threads de discussion) Serveurs de news qui s’échangent les groups / threads Base de news mondialement répartie Souplesse de configuration
Communication Inter - Personnes (3/3) Communication directe IRC - (Internet Relay Chat) Similaire aux news mais dialogue direct Création dynamique de groupes Utilisation de serveurs IRC communicant entre-eux ICQ #icq Problème de gestion du volume d’information / délai
Diffusion d’information - récupération - (1/3) FTP (File Transfert Protocol) Connexion client serveur Commandes simples sur la machine distante et transfert de fichiers (dans les 2 sens) Contrôle d’accès par username/password Serveurs ftp anonymes Gopher Interface graphique minimaliste Notion de hiérarchie de répertoires inter-reliés Feuille = document recherché
Diffusion d’information - indexation - (2/3) Archie Base de données de logiciels Moteurs d’indexation de sites ftp anonymes WAIS (Wide Area Information Service) Bases de données distribuées de recherche documentaire Standard Z39.50 standard (Information Retrieval Service Definition and Protocol Specification for Library Applications)
Diffusion d’information - diffusion - (3/3) Orientée utilisateur WEB Portails (Voila, Yahoo, Netscape…) Orientée fournisseur Mailing lists Push
Le client Universel Client de consultation conforme à tous les protocoles de communication HH Émulation des serveurs avec le protocole du Web Browser ==> Deux approches : WEB / CLIENT UNIVERSEL
Les intermédiaires
Pourquoi des intermédiaires Approche par les flux. Comment améliorer le flux ? Sécurité Cryptage C/S Vitesse Caches Vitesse + Sécurité ?
Sécuriser le flux Man in the Middle : Intermédiaire qui simule le serveur Web (ie Proxy) Eavesdropping : Sniffer (protège l’accès aux ressources) ==> Sécuriser la connexion 1) Soit sécuriser le transport (HTTPS) 2) Soit sécuriser les applications (S-HTTP)
SSL : Sécure Socket Layer https HTTP FTP Telnet Autres Stack IP SSL TCP/IP
SSL : moyens Communication sécurisé sur média non sécurisé Protection de la connexion Handshake initial pour définir le codage Cryptage symétrique Authentification optionnelle L’entité pair peut s’authentifier en utilisant un cryptage asymétrique (Clé public/privée) Sécurisation des échanges Authentification du message échangé (MAC) Message Authentication Code
Cryptage SSL (HTTPS) Encodage sur une clé unique connue du client et du serveur Le client génère aléatoirement un nombre Puis le transfère de manière cryptée au serveur Celui-ci encode les messages à l'aide de ce nombre ==> mais … (DrDobb’s 01/96)
FireWall FireWall : Pare-Feu Filtrage des paquets Table de filtrage des ports de connexion Inbound HTTP www.interne.com Outbound HTTP www.externe.com Inbound telnet telnet.interne.com Sinon interdit Tunneling Protocol Encodage d'une session Réseaux privés virtuels
Caches Optimisation des flux Client Serveur Client Serveur Client
Proxy Cache des documents transférés Cache mémoire sur le client Cache disque sur le client Serveur Cache local Serveurs Cache nationaux Fonctions Disponibilité, Maintenabilité Pre-caching Baisse de la charge Difficulté :?
Gestion du cache État d’un document du cache : fresh / stale Notion de lifetime (unlimited = fresh, 0=stale) Politique de gestion de l’expiration Orientée Serveur : entête http (Expires, Cache-Control) Heuristique : Dernière Modification Validation des ages / Expiration pour le client Durée des transits Conversions fuseaux horaires… Quels documents expulser du cache ?
Serveur Proxy proxy.univ-lyon1.fr 3128 function FindProxyForURL(url, host) { if (isPlainHostName(host)) return "DIRECT"; if ( dnsDomainIs( host,"univ-lyon1.fr")|| dnsDomainIs(host,"cpe.fr") || dnsDomainIs(host,"enssib.fr") || dnsDomainIs(host,"cermep.fr") || dnsDomainIs(host,"dr7.cnrs.fr") || dnsDomainIs(host,"www.dsi.cnrs.fr") || dnsDomainIs(host,"insa-lyon.fr")) return "DIRECT"; if (url.substring(0, 5) == "http:" ||url.substring(0, 7) == "gopher:") return "PROXY proxy.univ-lyon1.fr:3128; DIRECT"; if (url.substring(0, 5) == "wais:") return "PROXY web.univ-lyon2.fr:8001"; else return "DIRECT"; }
Caches Coopérations de caches Hiérarchies (parent) Transmission au parent si on n’a pas le document Récupération dans le cache fils http://www.serveurs-nationaux.jussieu.fr/cache Coopération d’égal à égal Requête au voisin si on a pas le document Caches Web Cache commerciaux … Cache gratuits : Squid : http://squid.nlanr.net/Squid
Miroirs (Aspirateurs) But : Accélerer les accès aux sites les plus demandés Diminuer le trafic global de l’Internet Moyen : copie des sites stratégiques sur différents endroits Logiciel mirroir = robot qui browse le Web automatiquement Racine + Règles d’arrêt de la récursion Extraction des <A…>….</A> webcopy, wget, w3mir
Architectures
Anneaux de diffusion Interconnexion de sites Web Mettre en commun des utilisateurs sur un sujet Définir des sous-réseau logiques d'information Site central qui diffuse les entêtes des documents Diffusion aux abonnés d'un cgi à insérer dans les documents
? Qu’est ce qu’un serveur ?
Configuration d’un serveur Web
Apache : configuration src configuration mime.types http.conf srm.conf access.conf logs http.pid error.log acces.log icons support
Apache : httpd.conf ServeurType standalone Port 80 User nobody Group Web ServerAdmin webmaster@machine ServerRoot /opt/apache_1.2.4 Timeout 300 KeepAlive on MaxKeepAliveRequests 100 KeepAliveTimeout 15 MinSpareServers 5 MaxSpareServers 10 StartServers 5 MaxClients 150 MaxRequestsPerChild 30 HostnameLookups on BrowserMatch Mozilla/2 nokeepalive
Apache : srm.conf Aspect du serveur pour les clients DocumentRoot /www/insa UserDir public_html DirectoryIndex index.html FancyIndexing on AddIcons /icons/back.gif .. AccessFileName .htaccess DefaultType text/plain Alias /icons/ /opt/apache_1.2.4/icons/ ScriptAlias /cgi-bin/ /opt/apache_1.2.4/cgi-bin/ AddHandler cgi-script .cgi
Apache access.conf <directory /www/insa/theme.siam> #none, all, options Indexes FollowSymLinks ExecCGI AllowOverride None order allow, deny allow from all </directory> <Location /server-status> SetHandler server-status order deny, allow deny from all allow from .insa-lyon.fr, .univ-lyon1.fr </location>
Apache : Logs httpd.pid : N° process du père error.log : date, ressource accédée, client, raison [Mon Feb 9 12:16:05 1998] access to /www/insa/theme.siam/frame/Bandeau.gif failed for pc401-50.insa-lyon.fr, reason: File does not exist access.log client, date, méthode utilisée, réponse, taille réponse wormhole.ctp.com [13/Feb/1998:20:00:56 +0100] "GET /~sfrenot/ HTTP/1.0" 200 4726 Virtual Host, IP Virtual Host et Non IP Virtual Host Utilisateur
Biblio Wilde’s WWW : « Technical Foundation of the World Wide Web » : Erik Wilde, Springer-Verlag, 1999 WebMaster in a Nutshell, O ’Reilly, 1997 ==> Quick Guide … W3C : http://www.w3c.com WebTech : http://webtools.dyade.fr:8888/WebTech WebCompare : http://webcompare.iworld.com Parts de Marché : http://www.netcraft.co.uk/Survey