Upload
corneille-moret
View
109
Download
0
Embed Size (px)
Citation preview
1
IFT 6800Atelier en Technologies
d’information
Chapitre 4Technologies Internet
2
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
3
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
4
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
5
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
6
Pages Web (1)
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
7
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
8
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
9
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.
10
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
11
WEB, Comment ça marche ?
Exemple pas à pas :étape I: En attente d'une requête
12
WEB, Comment ça marche ?
Exemple pas à pas :étape II: Émission d'une requête par un
client
13
WEB, Comment ça marche ?
étape III: Analyse de la requête par le serveurLe 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éePour 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.
14
Le Mail
Service de Messagerie- Permet d'envoyer des messages (texte).- Permet de joindre toute sorte de fichiers (attachement).
Adresse e-mail
Serhanim @ iro.umontreal.ca
Nom du ServeurNom d’utilisateur
15
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)
* PostscriptType du groupe
16
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
17
Philosophie WEB
18
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
19
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…)
20
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
21
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)
22
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 !
23
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,
24
WEB : Architecture documentaire
25
Architecture WEBLes standards
26
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
27
Identification des ressources URI/URL (rfc 1738 : 1994)
liste des paramètres(requêtes)
nom du pointeurds le doc. HTML
Chemin d'accès(relat. ou absol.)
80 par défaut<1023 root1023 < x < 65537 user
méthode protoc. d'accès à la ressource
file ress. localeftp FTPhttp HTTPtelnet TELNETgopher GOPHERwais WAISnews NNTP
nom de la machine
méthode://machine:port/fichier[#ancre | ?paramètres]
28
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
29
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
30
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
31
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
32
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
33
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>
34
Les Protocoles
35
Protocoles : une approche technique
C. Application
C. Présentation
C. Session
C. Transport
C. Réseau
C. Liaison de données
C. Physique
http ftp telnet
gopherpop3
Applications
tcp udpTransport
ip igmpRéseau
icmp
Interfacephysique rarp
Liaison
arp
36
ProtocolesServeurClient
Requête
Réponse
• Simple
• Publique
• Portable
37
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
38
Protocoles : Exemples
Famille Nom Client Serveur PortCourrier SMTP Sendmail Sendmail 25
POP3 Eudora Popper 110
IMAP Eudora Imapd 143
Transfert de fichiers FTP ftp Ftpd 20/21
Forums NNTP Tin Nntpd 119
Web HTTP Netscape Httpd 80
Conversion IP/Nom DNS Resolver BINDin.named
42/udp
39
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
40
Exemple de connexion
telnet ifhpserv 25=>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 [email protected]
41
Travail H->M : Communication MM Protocoles de routage Nommage de machines
DNS Transparence du réseau
NFS, NIS Synchronisation
XNTP Supervision
SNMP
42
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
43
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
44
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
45
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
46
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é
47
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)
48
Diffusion d’information - diffusion - (3/3)
Orientée utilisateur WEB Portails (Voila, Yahoo, Netscape…)
Orientée fournisseur Mailing lists Push
49
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
50
Les intermédiaires
51
Pourquoi des intermédiaires
Approche par les flux.
Comment améliorer le flux ? Sécurité
• Cryptage C/S Vitesse
• Caches Vitesse + Sécurité ?
52
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 connexion1) Soit sécuriser le transport (HTTPS)2) Soit sécuriser les applications (S-HTTP)
53
Stack IP
https
SSL : Sécure Socket Layer
FTPHTTP Telnet Autres
SSL
TCP/IP
54
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
55
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)
56
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
57
Caches
Optimisation des flux
Client
Client
Client
Serveur
Serveur
Serveur
Cache
Cache
Cache
58
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é :?
59
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 ?
60
Serveur Proxyproxy.univ-lyon1.fr 3128function 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"; }
61
Caches
Coopérations de caches Hiérarchies (parent)
• Transmission au parent si on n’a pas le document• Récupération dans le cache filshttp://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
62
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
63
Architectures
64
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
65
? Qu’est ce qu’un serveur ?
66
Configuration d’un serveur Web
67
Apache : configuration
/apache-1.2.4/ src configuration
• mime.types• http.conf• srm.conf• access.conf
logs• http.pid• error.log• acces.log
icons support
68
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
69
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
70
Apache access.conf
<directory /www/insa/theme.siam>#none, all,
options Indexes FollowSymLinks ExecCGIAllowOverride Noneorder allow, denyallow from all
</directory><Location /server-status>
SetHandler server-statusorder deny, allowdeny from all
allow from .insa-lyon.fr, .univ-lyon1.fr</location>
71
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
72
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