1 ift 6800 atelier en technologies dinformation chapitre 4 technologies internet

Post on 04-Apr-2015

107 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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 stephf@lisiflory.insa-lyon.fr

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

top related