Technologie des Serveurs Internet. Langage Perl

Dimension: px
Commencer à balayer dès la page:

Download "Technologie des Serveurs Internet. Langage Perl"

Transcription

1 Technologie des Serveurs Internet Jean Denis Girard :: SysNux BP Mahina Tahiti Polynésie française Année 2015

2 Plan Protocole HTTP Serveur Web (Apache) Serveur d'application (Zope / Plone)

3 Protocole HTTP Protocole au niveau application (niveau 7 du modèle OSI) pour l'accès aux documents hypermédias (MIME) distribués, défini par les RFC 1945 (HTTP/ ) et 2068 (1998) puis 2616 (HTTP/ ), par Aucune hypothèse sur la couche réseau; dans la pratique TCP/IP assure la «connexion». Protocole de type client / serveur (ou requête / réponse) : le client envoie une commande au serveur sous la forme d'une requête définissant une «méthode», un «URI», une version du protocole, éventuellement suivi d'entêtes, d'une ligne vide et éventuellement d'un contenu. Le serveur répond avec une ligne d'état (version du protocole et résultat) suivi d'entêtes avec des informations du serveur et sur le document, une ligne vide, puis, éventuellement, le document lui même. Protocole HTTP

4 Le client, par l'intermédiaire de son navigateur (UA = user agent), envoie une requête au serveur (O = origin server), qui lui envoie à son tour la réponse, en une ou plusieurs connexions (v): Cas simple requête > UA v O < réponse Avec intermédiaires: requête > UA v A v B v C v O < réponse Protocole HTTP

5 Passerelle (gateway): système qui agit comme intermédiaire du serveur réel; le client ne sait pas qu'il parle à un intermédiaire. Il s'agit par exemple d'un ou plusieurs routeurs. Modifie le protocole utilisé Proxy: programme (niveau application), qui sert de relais entre le client et le serveur; il doit donc lui même être à la fois client et serveur. Le client (UA) doit être configuré pour communiquer avec un proxy. HTTP est aussi utilisé comme protocole de communication générique vers les proxies pour d'autres applications (FTP,...). Peut modifier les réponses et requêtes. Tunnel: établit une connexion transparente entre le client et le serveur, à travers plusieurs intermédiaires, sans modification ni mise en cache. Protocole HTTP

6 Repérage des documents: pour HTTP, une URI (Uniform Resource Identifier) est simplement une chaîne de caractères permettant de définir un document. URL (uniform ressource locators) HTTP: http[s]://serveur:port/chemin_absolu/nom_fichier Par défaut port=80. Le nom de serveur ne différencie pas les majuscules des minuscules. Par contre, les chemins et noms de fichiers sont sensibles à la casse. Si le serveur n'est pas spécifié, le serveur actuel est utilisé. Si le chemin ne commence pas par /, le document actuel sert de base pour rechercher le nouveau document (chemin relatif) : URL relative / absolue. Les caractères non ASCII ou spéciaux doivent être codés (cf. rfc3986) : code du caractère (espace =>%20 ou &#32 ;) ou entités. Protocole HTTP

7 Méthodes des requêtes HTTP: GET: lire un document (statique), POST: envoyer des données au serveur, et obtenir la réponse (traitement), HEAD: lire l'entête d'une réponse, TRACE: serveur retourne la requête telle quelle (outil de test), PUT: envoyer un document au serveur, DELETE: effacer un document du serveur. Syntaxe: <METH> <URI> HTTP/<version> La fin de la requête est signalée par une ligne vide. Ex: >telnet localhost http GET /manual/new_features_2_0.html HTTP/1.0 >telnet http HEAD / HTTP/1.0 Protocole HTTP

8 Entêtes de requêtes: Les entêtes permettent au client de transmettre des informations complémentaires au serveur. Syntaxe: <ENT>: <paramètres> HTTP/1.1 rend obligatoire l'entête «Host: nom_serveur», pour gérer les serveurs virtuels (plusieurs noms gérés par un seul serveur). Ex: >telnet lvs.mana.pf http GET / HTTP/1.1 Host: Protocole HTTP

9 D'autres entêtes (optionnelles) permettent au client de définir un certain nombre de préférences, comme la langue, les formats de fichiers acceptables... c'est la négociation de contenu. Exemple d'entêtes: accept-language: fr, en-gb; q=0.8, en; q=0.7 accept-encoding: gzip Les préférences sont généralement ignorées par le serveur s'il ne peut y répondre. Dans tous les cas, la configuration du serveur permet de définir une réponse appropriée. Protocole HTTP

10 Réponse du serveur: contient le code de réponse qui indique le résultat global de la requête, puis des entêtes qui donnent des informations générales sur le serveur et/ ou le document, puis enfin le cas échéant le document à afficher dans le navigateur. 200 OK la requête a abouti, 301 Moved Permanently URI a changé, 304 Not Modified le document n'est pas modifié, 400 Bad Request requête mal formée, 401 Unauthorized autorisation nécessaire, 403 Forbidden autorisation refusée, 404 Not Found document introuvable, 405 Method Not Allowed méthode interdite, 408 Request Timeout temps pour requête écoulé, 500 Internal Server Error erreur du serveur lui même. Protocole HTTP

11 L'entête Date: est obligatoire dans HTTP/1.1; elle est notamment utilisée pour contrôler les caches. HTTP/ OK Date: Tue, 10 Jan :40:17 GMT Server: Apache/2.2.0 (Mandriva Linux/PREFORK- 6mdk) Last-Modified: Fri, 06 Jan :04:49 GMT ETag: "949eb-2c-4b4bde40" Accept-Ranges: bytes Content-Length: 44 Connection: close Content-Type: text/html <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head>... Protocole HTTP

12 La réponse ne concerne généralement qu'un unique document (page HTML, image, feuille de style ou code JavaScript); lorsque la réponse est terminée, le serveur coupe la connexion réseau. Néanmoins ce fonctionnement est coûteux, car une page Web typique comporte le fichier HTML lui même plus des images, une ou plusieurs feuilles de style,... HTTP/1.1 a introduit la notion de connexion «persistante» (keep alive), qui permet de transférer plusieurs documents dans une seule connexion réseau. Lorsque la réponse est terminée, le serveur attend une nouvelle requête, sans couper la connexion réseau. Protocole HTTP

13 Contrôle d'accès HTTP fournit un moyen simple de protéger les accès à certains documents ou groupe de documents. L'accès est donné si un couple (utilisateur, mot_de_passe) correct est passé au serveur (cf. rfc2617). Lorsque, le client demande (GET) un document protégé, le serveur envoie au client un code 401 (Authorization Required), et un entête : WWW-Authenticate: Basic realm="nom domaine" Dans la pratique, le navigateur ouvre alors une boîte de dialogue permettant d'entrer le nom d'utilisateur et le mot de passe; le navigateur renvoie la même demande (GET), augmentée d'un entête comportant un champ «Authorization». Protocole HTTP

14 Ex: Authorization: Basic amrnom1kca== La clé représente: nom_utilisateur:mot_de_passe, codé selon Mime/Base64. Attention: cette méthode n'est pas sûre, car il est trivial de retrouver le nom d'utilisateur et le mot de passe pour toute personne ayant accès au réseau; il faut obligatoirement l'associer à un chiffrage SSL. Application: «cracker» les nom d'utilisateurs / mots de passe en étudiant les trames avec un «sniffer» ethernet. Outil: wireshark + deux lignes de code Python: import base64 base64.decodestring("amrnom1kca==") Protocole HTTP

15 Contrôle des caches: Le rôle des caches est d'enregistrer les réponses issues des serveurs, dans le but qu'une requête identique ne soit pas soumise, ou que le serveur ne renvoie pas le document, afin de diminuer les temps de réponse, et l'occupation du réseau. Le problème essentiel est de déterminer si le document dans le cache est valide ou non. Le serveur peut être configuré pour envoyer des directives qui permettent de faciliter la décision. Normalement seules les requêtes GET sont mises en cache; les requêtes POST sont sensées réaliser un traitement, il faut les exécuter inconditionnellement. Protocole HTTP

16 La version 1.1 du protocole améliore notablement le contrôle des caches, à travers un double mécanisme : Expiration: si le document dans le cache n'a pas expiré, il est directement servi au client (pas de requête au serveur): entête Expires: ou Cache-Control: max-age dans la réponse Validation: le cache dispose du document, mais ne sait pas s'il est toujours valide. Il interroge le serveur. Les entêtes ETag: et Last-Modified: servent à évaluer la validité du document. La réponse 304 indique au cache qu'il peut réutiliser le document stocké localement. Protocole

17 Ex: dans une réponse, l'entête «Expires» définit quand la validité du document aura expiré. HTTP/1.1 définit aussi l'entête Cache-Control: qui peut être utilisée par le client ou le serveur. Cache-Control: max-age=0 force la validation auprès du serveur Cache-Control: no-cache force le cache à interroger le serveur. Protocole HTTP

18 CGI (Common Gateway Interface): site statique = fichiers (html, png, css, js,...) site dynamique = programmes (ou scripts) CGI définit essentiellement l'appel et le passage des paramètres, et l'envoi des résultats au navigateur. L'environnement d'exécution des scripts CGI est mis en place par le serveur web. Les résultats des scripts sont simplement imprimés sur la sortie standard par le script: le serveur web intercepte ces impressions et les envoie au navigateur. Il faut donc que cela respecte HTTP, et soit compréhensible par le navigateur. Protocole HTTP

19 Trois méthodes dans la RFC pour le passage des paramètres, seules deux sont utilisées : GET, paramètres nommés : paramètres disponibles dans la variable d'environnement QUERY_STRING POST : POST /cgi-bin/script HTTP/1.1 [entêtes] p1=v1&p2=v2 paramètres transmis dans le corps de la requête puis lus sur l'entrée standard par le script CGI. Protocole HTTP

20 Sécurité (SSL Secure Socket Layer / TLS Transport Layer Security RFC2246) Objectifs: chiffrement, identité, intégrité Deux types de chiffrement : conventionnel (ou symètrique): par utilisation d'une clé partagée à clé publique (asymètrique): couple de clés. Cryptage effectué par l'expéditeur avec clé dite publique que le destinataire lui a transmise. Déchiffrement possible uniquement avec la clé privée. Intégrité : fonctions de hachage Identité : certificat (serveur et / ou client) Protocole https, sur port 443 Intermédiaire entre TCP/IP et HTTP (entêtes chiffrés!) Protocole HTTP

21 Intégrité des messages : Assurer que le message n'a pas été modifié durant son transport sur le réseau est aussi important que de le chiffrer. On utilise pour cela des algorithmes qui calculent un nombre de longueur fixe (digest) à partir d'un message de longueur quelconque. Ces algorithmes sont étudiés pour que deux messages différents fournissent des digest différents. Le digest calculé par l'expéditeur est ajouté au message envoyé; de son côté, le destinataire calcule le digest correspondant au message reçu. Si les digests transmis et calculés sont égaux, le message n'a pas été modifié pendant sa transmission. Algorithmes : MD5 (128 bits, cracké en 2004), SHA 1 (NSA, 160 bits, doute sur fiabilité depuis 2005), SHA 256 (256 bits) Protocole HTTP

22 Certificats: Le problème qui demeure est d'assurer que la clé publique est réellement celle du destinataire. On introduit donc un tiers, autorité de confiance (Certificate Authority), qui fournit des certificats signés par lui même, permettant d'authentifier la clé publique. La liste des autorités de confiance est intégrée dans les navigateurs Internet. Protocole HTTP

23 Éléments d'un certificat : Sujet: nom (Distinguished Name DN), clé publique Émetteur: nom (DN), signature Période de validité: début de validité, fin de validité Information administrative: version, numéro de série Information additionnelle: contraintes, etc. DN (cf. LDAP) est lui même composé d'un nom commun (CN: secure.sysnux.pf), du nom de l'organisation (O: Sysnux), du département (OU: cellule web), la ville (C: Papeete), de l'état ou province (ST: Tahiti), et du pays (C: PF). Le certificat est ensuite transmis sous forme binaire. Protocole HTTP

24 L'établissement de la session implique: 1. négociation du type de cryptage (méthode d'échange de la clé de session, algorithme, type de digest), 2.échange de la clé de session, 3. authentification du serveur (optionnel), 4. authentification du client (optionnel). Le web sécurisé utilise le protocole HTTP sécurisé par SSL (d'où le nom HTTPS); les seules différences sont donc le protocole dans l'url (https://...) et le port qui vaut 443 par défaut. C'est ce que fournit le module mod_ssl d'apache (cf. cette extension utilisant la bibliothèque libre OpenSSL (cf. (cf. documentation du module mod_ssl) Protocole HTTP

25 Protocole HTTP

26 L'utilisation de SSL pose problème avec les serveurs virtuels. L'extension Server Name Indication (rfc 4366) lève cette limitation en ajoutant le nom du serveur au début de la négociation SSL. Cette extension suppose le support côté client et serveur. Mozilla Firefox 2.0 Opera 8.0 Internet Explorer 7 (Windows Vista, pas XP) Google Chrome (Vista, not XP) Safari Safari (Mac OS X , ou Vista, pas XP) Protocole HTTP

27 Serveurs Web Définition Le serveur Web est un programme qui réalise le protocole HTTP. Il attend les requêtes des clients (navigateurs), leur retourne les réponses appropriées (traitement des erreurs), et le cas échéant les documents demandés. Les documents peuvent dépendre des entêtes de requêtes (négociation de contenu); ils peuvent aussi être le résultat de programmes exécutés sur le serveur. Le serveur doit envoyer des entêtes de contrôle de cache... Il doit gérer les protections d'accès. Un serveur Web doit être multi tâche, rapide et sûr. Serveurs Web

28 État du marché Serveurs Web

29 Novembre 2014 Décembre 2014 Apache 350,853, % 358,159, % Microsoft 306,029, % 272,967, % nginx 139,130, % 132,467, % Google 19,560, % 20,011, % Voir aussi tableau fiabilité. Serveurs Web

30 Introduction Perl est un langage de programmation interprété, à l'origine développé sous UNIX et spécialisé dans le traitement des chaînes de caractères ; Il hérite en cela d'outils tels que le shell, grep, sed, awk. Il a néanmoins évolué en un langage complet, aussi bien utilisé pour le web, que pour les applications scientifiques, l'accès aux bases de données, la programmation de jeux ou l'administration système. C'est un logiciel libre, qui fonctionne sur plus de cent plate formes. La version 1 est parue en 1987, est sortie en 1995, et la version actuellement stable est , avec une branche 6 en développement depuis plusieurs années.

31 L'inventeur de Perl, Larry Wall, a la particularité d'avoir effectué des études de linguistique ; Perl en hérite, avec quelques caractéristiques proches des langages naturels, notamment la notion de contexte. Le style de programmation est très libre, d'ailleurs le slogan de Perl est : There's more than one way to do it (TMTOWTDI). Visitez Le programme (ou interpréteur) perl permet d'éxécuter les scripts Perl, stockés par convention dans des fichiers ayant l'extension.pl. On peut néanmoins exécuter des instructions simples directement : perl -e 'print "Bonjour!\n ;"'

32 On peut aussi rendre les fichiers exécutables, et ajouter sur la première ligne : #!/usr/bin/env perl... On peut alors directement exécuter le script. La syntaxe de Perl est très permissive, mais on peut demander à l'interpréteur de prévenir si une variable est utilisée avant d'être initialisée, ou autre : #!/usr/bin/env perl use strict ; use warnings...

33 Syntaxe Toutes les instructions doivent être terminées par ; Les blocs de code sont indiqués par {} Les commentaires sont indiqués par # Les espaces n'ont pas d'importance en dehors des chaînes de caractères. Les chaînes de caractères sont délimitées par des guillemets: simples : pas d'interpolation des variables ou caractères spéciaux (\n) doubles : interpolation des variables et caractères spéciaux. Les parenthèses à l'appel de fonctions ne sont généralement pas obligatoires.

34 Une des premières caractéristique de Perl est sa gestion des variables. Les variables n'ont pas besoin d'être déclarées (sauf sous mode strict, utilisation de la fonction my), et il existe essentiellement, trois types : Scalaire : valeur unique, nombre (entier ou flottant) ou chaîne de caractères, indiqué par le caractère $, my $pi = 3.14; my $b = 'bonjour'; my $n = 'toto'; print "$b $n\n"; print 'Ce produit coûte 10$', "\n"; print 'Diamètre cercle de rayon 5 ', 2*$pi*5, "\n"; Certaines variables magiques existent par défaut, comme $_ qui est la variable par défaut.

35 Tableau : liste ordonnée indicée par un nombre entier (commence à 0), indiqué par le Attention, les éléments d'une liste sont des = ('a', 'bb', 123, $x, 'azerty', 6.51); print $t[0], "\n"; On peut obtenir des extraits ou tranches (slices) de listes : "\n"; "\n"; Dans un contexte scalaire, la renvoie le nombre d'éléments de la liste. La variable spéciale $# renvoie le dernier indice du contient la liste des arguments passés à une fonction, les arguments passés au script.

36 Dictionnaire (ou hash) : liste accédée par une chaîne de caractères, représenté par le caractère %. %rvb = ('R', 'Rouge', 'V', 'Vert', 'B', 'Bleu'); %jours = ('lun' => 'lundi', 'mar' => 'mardi', 'mer' => 'mercredi', 'jeu' => 'veudi', 'ven' => 'vendredi', 'sam' => 'samedi', 'dim' => 'dimanche'); print 'Nous sommes ', $jours{'ven'}, "\n"; Les fonctions keys et values permettent de renvoyer la liste des clés et des valeurs d'un dictionnaire.

37 Finalement les références vont permettre de construire des structures de données arbitrairement complexes. Une référence est indiquée par le symbole \ qui précède le nom de la variable (scalaire, tableau ou dictionnaire). La référence est elle même un élément scalaire. $pi = 3.14; $rs = = ('a', 'bb', 123); $rt = %j = ('lun' => 'lundi', 'mar' => 'mardi'... $rd = \$j ; Le déréférencement est réalisé en ajoutant le symbole correspondant au type de variable avant le nom de la référence : %$rd;

38 On peut aussi construire des références dites «anonymes», c'est à dire qui ne s'appuient sur aucune variable précédemment déclarée. C'est plus particulièrement utile pour les tableaux et dictionnaires : $rs = \ ; $rt = ['a', 'bb', 'ccc']; $rh = {'x' => 1.1, 'y' => -2.1e-5, 'z' => $rt}; Le déréférencement génère parfois des difficultés de lecture, aussi l'opérateur flèche ( >) a été créé, qui permet de faciliter la lecture : print ${$$rh{'z'}}[2] ; devient plus simplement : print $rh->{'z'}->[2] ;

39 Les variables créées avec my ont une portée limitée au bloc local {}. my $x = "var X"; my $condition = 1; if ($condition) { my $y = "var Y"; print "$x\n"; # Affiche "var X" print "$y\n"; # Affiche "var Y" } print "$x\n"; # Affiche "foo" print "$y\n"; # Erreur si mode strict Les variables déclarées sans my (si mode strict pas activé) ont une portée globale.

40 Structures de contrôle Perl dispose des structures de contrôle classiques. if (condition1) { instruction;... } elsif (condition2) {... } else {... } Le bloc est obligatoire même si l'instruction est unique. Il existe aussi une version négative : unless (condition) {... }

41 Le bloc est obligatoire même si l'instruction est unique., mais il existe des raccourcis pour ce cas : print 'ok!' if condition; print 'ko!' unless condition; Historiquement Perl ne dispose pas d instruction de type switch / case, néanmoins, depuis la version 5.10, on peut utiliser : use feature 'switch'; given ($v) { when ('a') { $x=1; } when ('b') { $x=2; } when ('c') { $x=3; } default { $x=0; } }

42 Boucles simples avec conditions positive ou négative, test au début ou à la fin : while (condition) {... } until (condition) {... } do {... } while (condition); do {... } until (condition); instruction while (condition); instruction until (condition);

43 Les boucles for existent sous deux formes, la deuxième étant préférée et plus rapide : for (my $i=0; $i< 10; $i++) { print "$i\n";... } = (0..9); foreach my $i { print "$i\n";... } print "$_\n" foreach for et foreach sont en réalité synonymes.

44 On peut naturellement sortir d une boucle précocement ou continuer sans faire la fin de la boucle : while ($i<100) {... last if (condition); # Sortie immédiate... } = (0..9); foreach my $i {... next if (condition); # Reprise immédiate... }

45 Les instructions last et next peuvent aussi prendre une étiquette en argument, par exemple, pour rechercher les couples de nombres dont le produit vaut une certaine valeur = (0..100); my $v = 50; EXTERNE: foreach my $i { INTERNE: foreach my $j { if ($i * $j == $v) { print "$v = $i * $j\n"; next EXTERNE; } if ($j >= $i) { last INTERNE; } } }

46 Opérateurs Arithmétique : + - * / ** Chaînes de caractères, concaténation et multiplication :. x Comparaison numérique : ==!= > >= < <= Comparaison de chaînes de caractères : eq ne lt gt le ge Affectation : = Affectation combinée avec une opération : += -= *= /=.= x= Incrémentation / décrémentation : $i++ ++$i $i-- --$i Intervalle (liste) d entiers (en contexte liste) : (n1..n2)

47 Logique : && and or (priorité plus faible pour ces derniers, peuvent être utilisés en contexte de liste) Opérateurs bit à bit : & ^ Décalage bit à bit : >> << Opérateur intervalle :.. Opérateur conditionnel : condition? 'vrai':'faux' Opérateur déclaration de chaînes : 'texte' "texte" `texte` q{texte} qq{texte} qx{texte}

48 Accès aux fichiers La fonction open permet de d'initier l'accès à un fichier. Elle prend par défaut trois paramètres : la variable descripteur de fichier, le mode d'ouverture (< > >>), et le nom du fichier (avec chemin éventuellement).open renvoie une valeur fausse en cas d'erreur. Une fois le descripteur de fichier ouvert, on peut lire le fichier avec l'opérateur <>. Pour écrire, on utilise la fonction print, avec le descripteur en premier argument. La fonction close ferme le descripteur de fichier. open (my $in, '<', '/tmp/fichier1.txt'); open (my $out, '>', '/tmp/fichier2.txt'); while (my $ligne=<$in>) { print $out $ligne; } La fonction chomp permet d'éliminer le retour à la ligne, dans les lignes lues.

49 Fonctions Le mot clé sub permet de déclarer une fonction. Les arguments sont passés à travers la variable L'instruction return sort immédiatement de la fonction en renvoyant éventuellement une valeur (scalaire ou liste). La fonction est appelée par son nom, suivi des arguments ; si la fonction n'est pas déclarée avant son appel, il faut ajouter & avant le nom. sub ma_fonction { my ($x, $y, $z) print "$x $y $z\n"; return "OK!"; } ma_fonction 'Bonjour', 'comment', 'allez-vous?' ; Les fonctions Perl sont récursives. On peut prendre une référence sur une fonction : my $rf = \&ma_fonction;

50 Expressions rationnelles Encore appelées expressions régulières (regular expressions, regex, pattern matching) : recherche et modifications dans les chaînes de caractères. L'opérateur de recherche est m//, ou simplement // ; il s'applique par défaut à la variable par $_. On peut aussi le lier à une variable quelconque avec l'opérateur =~ (négation!~). Dans le cas le plus simple, on cherche une simple chaîne de caractères, par exemple : if (m/motif/) {... if ($x =~ /motif/) {... Les expressions rationnelles prennent leur sens lorsque le motif contient des méta-caractères (caractères spéciaux) :. (point) correspond à n'importe quel caractère, \d correspond à un chiffre, \D pas un chiffre, \w correspond à caractère alphanumérique ou _, \W au contraire,

51 \s correspond à un espace (ou retour ligne, ou tabulation), \S pas un espace. ^ correspond au début de ligne, $ correspond à la fin de ligne, indique une alternative (ou). Exemples : /peu\w/; # Correspond à 'peut' 'peur', 'peux' /^\d\d\d$/; # Ligne contenant 3 chiffres exactement On peut aussi définir des classes de caractères : [xyz] l'un quelconque de x, y ou z, [a-z] lettre minuscule, [^ABC] pas A, ni B, ni C. Ainsi que des groupements de caractères avec () : /(a b)b/; # reconnaît 'ab' ou 'bb' /(^a b)c/; # 'ac' au début ou 'bc' /chat(on )/; # reconnaît 'chaton' ou 'chat'. /chat(on(s ) )/; # 'chatons' ou 'chaton' ou 'chat'.

52 Certains caractères spéciaux permettent d'indiquer une répétition du caractère qui les précèdent : + au moins une fois,? aucune fois ou une seule, * aucune fois ou plusieurs, {n} exactement n fois, {n,} au moins n fois, {n,m} entre n et m fois. Exemples : /peu\w?/; # 'peu', 'peut' 'peur', 'peux' /\d{3}/; # Nombre de 3 chiffres L'opérateur s/// permet d'effectuer une correspondance et une substitution sur la correspondance, par exemple : 'bonjour' =~ s/jour/ne nuit/; # bonjour -> bonne nuit

53 Les groupements de caractères servent aussi à effectuer des mémorisations ou captures, qui peuvent être réutilisées dans la suite du code en tant que variables $1, $2,... selon l'ordre de la capture. Exemples : if ($t =~ /(\d\d):(\d\d):(\d\d)/) { # format hh:mm:ss $heures = $1; $minutes = $2; $secondes = $3; } Les captures peuvent aussi être utilisées dans la deuxième partie de l'opérateur substitution. Enfin certains modificateurs placés après l'expression changent la reconnaissance, notamment : i insensible à la casse, g global.

54 Bibliothèque standard (man perlfunc) Scalaires, chaînes de caractères chomp, chop : suppression caractère retour ligne ou dernier caractère, chr, ord : code ASCII <=> caractère chr(65) ; ord('a');. length : longueur chaîne. substr : extraction chaîne. Tableaux Push, pop shift, unshift début, keys, values : clés d'un dictionnaire ou index d'un tableau + valeurs. Each : en contexte de liste renvoie la clé et la valeur d'un dictionnaire ou l'index et la valeur d'un tableau ; en contexte scalaire, renvoie la clé ou l'index.

55 Listes split ':', $s ; join ' ; : découpe la chaîne en fonction du séparateur, ou concatène les éléments du liste avec le séparateur. sort : classement, alphabétique par défaut, sinon selon la fonction. reverse :renverse la liste. map le bloc pour chaque élément de la liste, $_. qw : retourne une liste de mots. wantarray : impose le contexte liste. Nombres abs, atan2, cos, exp, hex, int, log, oct, rand, sin, sqrt, srand

56 Fichiers / répertoires chdir, chmod, chown, glob '*.c' ; open, close opendir, readdir, closedir mkdir, rmdir readlink, rename, Stat, Divers eval : considère la chaîne comme du code Perl et l'exécute (si possible!). defined, undef : vérifie l'existence ou détruit une variable. die, exit : fin et renvoie code retour.

L3 informatique TP n o 2 : Les applications réseau

L3 informatique TP n o 2 : Les applications réseau L3 informatique TP n o 2 : Les applications réseau Sovanna Tan Septembre 2009 1/20 Sovanna Tan L3 informatique TP n o 2 : Les applications réseau Plan 1 Transfert de fichiers 2 Le Courrier électronique

Plus en détail

A6 - HTTP ESIROI 2014-2015

A6 - HTTP ESIROI 2014-2015 A6 - HTTP ESIROI 2014-2015 HTTP HyperText Transfer Protocol Protocole synchrone 3 version : HTTP/0.9 (obsolète) HTTP/1.0 (rare) HTTP/1.1 HTTP - fonctionnement Requête Réponse Icones : http://www.visualpharm.com/

Plus en détail

Serveurs de noms Protocoles HTTP et FTP

Serveurs de noms Protocoles HTTP et FTP Nils Schaefer Théorie des réseaux (EC3a) Serveurs de noms Protocoles HTTP et FTP Théorie des réseaux (EC3a) Séance 7 Pourquoi DNS? Internet est une structure hiérarchique et arborescente de réseaux et

Plus en détail

HTTP et le Web. 2010 Pearson France Perl moderne Sébastien Aperghis-Tramoni, Damien Krotkine, Jérôme Quelin

HTTP et le Web. 2010 Pearson France Perl moderne Sébastien Aperghis-Tramoni, Damien Krotkine, Jérôme Quelin 21 HTTP, le protocole de transfert à la base du Web est devenu omniprésent. Parce qu il est le seul protocole dont il est quasi certain qu il passera à travers les proxies et les firewalls, celui-ci est

Plus en détail

Le protocole HTTP. Olivier Aubert 1/40

Le protocole HTTP. Olivier Aubert 1/40 Le protocole HTTP Olivier Aubert 1/40 Liens http://www.jmarshall.com/easy/http/ Références : RFC1945 (HTTP1.0), RFC2616 (HTTP1.1), RFC822 (format des entêtes), RFC2396 (syntaxe des URL), RFC1521 (types

Plus en détail

Application distribuée via HTTP Mise en œuvre minimale...

Application distribuée via HTTP Mise en œuvre minimale... Module RX : distrib/http Application distribuée via HTTP Mise en œuvre minimale... Problème de la distribution Fabrice Harrouet École Nationale d Ingénieurs de Brest harrouet@enib.fr http://www.enib.fr/~harrouet/

Plus en détail

Le Web. Présentation du langage HTML et du protocole HTTP

Le Web. Présentation du langage HTML et du protocole HTTP Le Web Présentation du langage HTML et du protocole HTTP Une petite histoire du web 1989 1ère note relative au web «hypertexte et le CERN» au sujet du World Wide Web. 1991 premier serveur web sur l Internet,

Plus en détail

Architecture client/serveur

Architecture client/serveur Architecture client/serveur Table des matières 1. Principe du client/serveur...2 2. Communication client/serveur...3 2.1. Avantages...3 2.2. Inconvénients...3 3. HTTP (HyperText Transfer Protocol)...3

Plus en détail

PERL POUR LA MANIPULATION DE TEXTES Une Introduction par l'exemple

PERL POUR LA MANIPULATION DE TEXTES Une Introduction par l'exemple PERL POUR LA MANIPULATION DE TEXTES Une Introduction par l'exemple Sous linux, on peut exécuter un script perl en tapant dans un terminal la ligne de commande $ perl nom_du_programme.pl Les exemples suivants,

Plus en détail

Le langage PHP permet donc de construire des sites web dynamiques, contrairement au langage HTML, qui donnera toujours la même page web.

Le langage PHP permet donc de construire des sites web dynamiques, contrairement au langage HTML, qui donnera toujours la même page web. Document 1 : client et serveur Les ordinateurs sur lesquels sont stockés les sites web sont appelés des serveurs. Ce sont des machines qui sont dédiées à cet effet : elles sont souvent sans écran et sans

Plus en détail

IUT Montpellier - Architecture (DU)

IUT Montpellier - Architecture (DU) IUT Montpellier - Architecture (DU) V. Poupet Cours n o 5 : Hypertext Transfer Protocol (HTTP) 1 Le protocole HTTP Lorsqu un utilisateur (client) veut obtenir une page web, il s adresse à un serveur web.

Plus en détail

Programmation Shell. Table des matières. Programmation Shell

Programmation Shell. Table des matières. Programmation Shell Programmation Shell Table des matières Programmation Shell...1 I- Introduction...2 Shell?...2 Le Bash...2 II- Premiers scripts Shell...3 Syntaxe des scripts Shell...3 Bonjour!...3 Exécuter un script...3

Plus en détail

Programmation du Web : Présentation du protocole HTTP

Programmation du Web : Présentation du protocole HTTP Programmation du Web : Présentation du protocole HTTP Jean-Baptiste Vioix (jean-baptiste.vioix@iut-dijon.u-bourgogne.fr) IUT de Dijon-Auxerre - LE2I http://jb.vioix.free.fr 1-14 Présentation générale Le

Plus en détail

18 TCP Les protocoles de domaines d applications

18 TCP Les protocoles de domaines d applications 18 TCP Les protocoles de domaines d applications Objectifs 18.1 Introduction Connaître les différentes catégories d applications et de protocoles de domaines d applications. Connaître les principaux protocoles

Plus en détail

PHP/MYSQL. Web Dynamique

PHP/MYSQL. Web Dynamique PHP/MYSQL Web Dynamique ENSG Juin 2008 Qui suis-je? Guillaume Gautreau Responsable projets Systèmes d information à l ENPC guillaume@ghusse.com http://www.ghusse.com Ces 6 jours de formation Jour 1 : présentations,

Plus en détail

(structure des entêtes)

(structure des entêtes) Aide mémoire HTTP (structure des entêtes) Fabrice HARROUET École Nationale d Ingénieurs de Brest http://www.enib.fr/~harrouet/ enib 1/10 Structure générale d une requête Requête HTTP méthode ressource

Plus en détail

Applications orientées données (NSY135)

Applications orientées données (NSY135) Applications orientées données (NSY135) 2 Applications Web Dynamiques Auteurs: Raphaël Fournier-S niehotta et Philippe Rigaux (philippe.rigaux@cnam.fr,fournier@cnam.fr) Département d informatique Conservatoire

Plus en détail

Service Web. Cours de Réseaux. Tuyêt Trâm DANG NGOC 2012-2013. Université de Cergy-Pontoise. Tuyêt Trâm DANG NGOC Service Web 1 / 12

Service Web. Cours de Réseaux. Tuyêt Trâm DANG NGOC 2012-2013. Université de Cergy-Pontoise. <dntt@u-cergy.fr> Tuyêt Trâm DANG NGOC Service Web 1 / 12 Service Web Cours de Réseaux Tuyêt Trâm DANG NGOC Université de Cergy-Pontoise 2012-2013 Tuyêt Trâm DANG NGOC Service Web 1 / 12 Plan 1 Le Web 2 HTTP 3 FTP 4 URL Tuyêt Trâm DANG NGOC

Plus en détail

HTTP HTTP. IUT1 dpt SRC L Isle d Abeau Jean-françois Berdjugin. Introduction et architecture Messages Authentification Conclusion

HTTP HTTP. IUT1 dpt SRC L Isle d Abeau Jean-françois Berdjugin. Introduction et architecture Messages Authentification Conclusion HTTP IUT1 dpt SRC L Isle d Abeau Jean-françois Berdjugin HTTP Introduction et architecture Messages Authentification Conclusion 1 HTTP Introduction et architecture Hypertext Transfert Protocol URI (Uniform

Plus en détail

Applications Réparties. Département Sciences Informatiques SI 4 ème année

Applications Réparties. Département Sciences Informatiques SI 4 ème année Applications Réparties Département Sciences Informatiques SI 4 ème année 1 Applications Réparties? Ensemble de processus (objets, agents, acteurs) qui: Communiquent entre eux via un réseau Evoluent de

Plus en détail

Le langage PHP. Walid Belkhir Université de Provence belkhir@cmi.univ-mrs.fr http://www.lif.univ-mrs.fr/ belkhir/

Le langage PHP. Walid Belkhir Université de Provence belkhir@cmi.univ-mrs.fr http://www.lif.univ-mrs.fr/ belkhir/ Le langage PHP Walid Belkhir Université de Provence belkhir@cmi.univ-mrs.fr http://www.lif.univ-mrs.fr/ belkhir/ 1 / 38 Plan 1 Introduction au langage PHP 2 2 / 38 Qu est ce que PHP? langage interprété

Plus en détail

Introduction (rapide) à Perl

Introduction (rapide) à Perl Luc Didry Julien Vaubourg LP ASRALL Année universitaire 2009-2010 Université Nancy 2 IUT Nancy-Charlemagne Table des matières Introduction (rapide) à Perl 1 Qu'est-ce que Perl? 2 2 Document de base 2 3

Plus en détail

Apprendre à développer un site web avec PHP et MySQL Exercices pratiques et corrigés (2ième édition)

Apprendre à développer un site web avec PHP et MySQL Exercices pratiques et corrigés (2ième édition) Introduction 1. Objectif de l'ouvrage 13 2. Fonctionnement d un site web 13 Installation 1. Introduction 17 2. Installation d'easyphp 13.1 18 Les bases du langage PHP 1. Les balises 23 1.1 Syntaxe de base

Plus en détail

Gilles.Roussel univ-mlv.fr HTTP/1.1 RFC 2068

Gilles.Roussel univ-mlv.fr HTTP/1.1 RFC 2068 HTTP/1.1 RFC 2068 1 Caractéristiques Niveau application Sans état Tout transfert de données Au dessus du protocole TCP Largement utilisé dans le World Wide Web Utilise les normes : URI (Uniform Resource

Plus en détail

Actuellement dans le réseau, des millions. Problèmes. d'authentification :

Actuellement dans le réseau, des millions. Problèmes. d'authentification : Problèmes d'authentification HTTP Pratique Emilio Casbas Degré de difficulté Le protocole HTTP nous offre le mécanisme d'autorisation de type requête-réponse qui peut être exploité par un serveur en réseau

Plus en détail

1 Introduction...3 1.1 Propos du document...3 1.2 Introduction...3 1.3 De HTTP 1.0 à HTTP 1.1...3

1 Introduction...3 1.1 Propos du document...3 1.2 Introduction...3 1.3 De HTTP 1.0 à HTTP 1.1...3 Tutorial HTTP 1 Introduction...3 1.1 Propos du document...3 1.2 Introduction...3 1.3 De HTTP 1.0 à HTTP 1.1...3 2 URL HTTP...4 2.1 Format d une URL HTTP...4 2.2 Champs de l URL HTTP...4 2.3 Encodage d

Plus en détail

Bases de données (INF225), TELECOM ParisTech. TP PHP & MySQL

Bases de données (INF225), TELECOM ParisTech. TP PHP & MySQL Bases de données (INF225), TELECOM ParisTech TP PHP & MySQL Pierre Senellart (pierre.senellart@telecom-paristech.fr) Bogdan Cautis (bogdan.cautis@telecom-paristech.fr) Ioana Ileana (ioana.ileana@telecom-paristech.fr)

Plus en détail

Programmation d applications pour le Web

Programmation d applications pour le Web Programmation d applications pour le Web Cours 2 ème année ING ISI-Tunis Elaboré par: Hela LIMAM Chapitre 1 Architectures et applications du Web Année universitaire 2011/2012 Semestre 2 1 Plan Internet,

Plus en détail

WebSSO, synchronisation et contrôle des accès via LDAP

WebSSO, synchronisation et contrôle des accès via LDAP 31 mars, 1er et 2 avril 2009 WebSSO, synchronisation et contrôle des accès via LDAP Clément Oudot Thomas Chemineau Sommaire général Synchronisation d'identités WebSSO et contrôle des accès Démonstration

Plus en détail

La programmation en Perl

La programmation en Perl La programmation en Perl Jean-Philippe Peyrache Université Jean Monnet - Faculté des Sciences et Techniques Licence Informatique - Semestre 5 J.P. Peyrache (UJM - FST) La programmation en Perl Licence

Plus en détail

Apprendre à développer un site web

Apprendre à développer un site web Ce livre s adresse à un public de développeurs débutants connaissant déjà le HTML et les CSS et qui souhaitent bien comprendre le fonctionnement d une application web pour créer leurs propres sites web

Plus en détail

LES SCRIPTS CGI. Présentation Mise en œuvre La programmation Les variables d environnement

LES SCRIPTS CGI. Présentation Mise en œuvre La programmation Les variables d environnement LES SCRIPTS CGI Présentation Mise en œuvre La programmation Les variables d environnement LES SCRIPTS CGI Présentation Mise en œuvre La programmation Les variables d environnement OBJECTIFS Historiquement,

Plus en détail

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau) CS WEB Ch 1 Introduction I. INTRODUCTION... 1 A. INTERNET INTERCONNEXION DE RESEAUX... 1 B. LE «WEB» LA TOILE, INTERCONNEXION DE SITES WEB... 2 C. L URL : LOCALISER DES RESSOURCES SUR L INTERNET... 2 D.

Plus en détail

Commandes et scripts Bash. 1 Commandes de gestion des fichiers et répertoires

Commandes et scripts Bash. 1 Commandes de gestion des fichiers et répertoires Commandes et scripts Bash Seules certaines options sont indiquées. Pour plus de détails voir les pages de manuel (cf commande man). Si une commande est indiquée comme étant interne, cela signifie qu elle

Plus en détail

Explication des statistiques

Explication des statistiques Explication des statistiques Sources : http://www.eolas.fr/8-conseil/65-interpreter-vos-statistiques-webalizer.htm http://support.sherweb.com/faqdetails.php?idarticle=68 Un site web est un ensemble de

Plus en détail

Initiation à la programmation en Python

Initiation à la programmation en Python I-onventions Initiation à la programmation en Python Une commande Python sera écrite en caractère gras. Exemples : print("bonjour") max=input("nombre maximum autorisé :") Le résultat de l'exécution d'un

Plus en détail

Initiation à la programmation en Python

Initiation à la programmation en Python I-Conventions Initiation à la programmation en Python Nom : Prénom : Une commande Python sera écrite en caractère gras. Exemples : print 'Bonjour' max=input("nombre maximum autorisé :") Le résultat de

Plus en détail

Ftp : H:\Mes Documents\ecole\cours\Os_sept_02\commandes Ftp.doc

Ftp : H:\Mes Documents\ecole\cours\Os_sept_02\commandes Ftp.doc Ftp : Transfère les fichiers de/vers un système utilisant un service serveur FTP (parfois appelé daemon ou démon). Ftp peut être utilisée de manière interactive. Cette commande est disponible uniquement

Plus en détail

RFC 7230 : Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing

RFC 7230 : Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing RFC 7230 : Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing Stéphane Bortzmeyer Première rédaction de cet article le 14 juin 2014 Date de publication du

Plus en détail

Système UNIX et Langages de scripts

Système UNIX et Langages de scripts Système UNIX et Langages de scripts Projet Les deux sujets sont à faire, en binôme! 1 Bash : Gestion d une bibliothèque numérique L objectif est de gérer une bibliothèque numérique (un ensemble de livres

Plus en détail

Technologies du Web Master COMASIC Internet et HTTP

Technologies du Web Master COMASIC Internet et HTTP Technologies du Web Master COMASIC Internet et HTTP Antoine Amarilli 1 27 novembre 2014 1. Matériel de cours inspiré de notes par Pierre Senellart et Georges Gouriten. Merci à Pierre Senellart pour sa

Plus en détail

Dans l'épisode précédent

Dans l'épisode précédent Dans l'épisode précédent 2 Le réseau SERVEURS POSTE CLIENT POSTE CLIENT wifi SERVEURS POSTE CLIENT switch Borne Wifi SERVEURS routeur POSTE CLIENT? SERVEURS SERVEURS SERVEURS POSTE CLIENT SERVEURS 3 Les

Plus en détail

APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI

APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Cours en Réponse à questions, n 1 Valérie Bellynck, Benjamin Brichet-Billet, Mazen Mahrous Grenoble

Plus en détail

Initiation à la programmation. L'essentiel de la programmation en shell, perl, php et C++

Initiation à la programmation. L'essentiel de la programmation en shell, perl, php et C++ Initiation à la programmation L'essentiel de la programmation en shell, perl, php et C++ Communiquer avec sa machine Les langages de programmation sont d'abord destinés aux humains et non aux machines.

Plus en détail

Langages du Web. Que savez vous???

Langages du Web. Que savez vous??? Langages du Web Que savez vous??? Le WEB World Wide Web ouwww ouweb Toile d'araignée mondiale ou la toile Le Web utilise le réseau Internet pour relier des serveurs qui, grâce aux protocoles HTTP, HTTPS,

Plus en détail

1 Introduction. La sécurité

1 Introduction. La sécurité La sécurité 1 Introduction Lors de l'écriture d'une application de gestion, les problèmes liés à la sécurité deviennent vite prégnants. L'utilisateur doit disposer des droits nécessaires, ne pouvoir modifier

Plus en détail

Programmation Web. Madalina Croitoru IUT Montpellier

Programmation Web. Madalina Croitoru IUT Montpellier Programmation Web Madalina Croitoru IUT Montpellier Organisation du cours 4 semaines 4 ½ h / semaine: 2heures cours 3 ½ heures TP Notation: continue interrogation cours + rendu à la fin de chaque séance

Plus en détail

La sécurisation d applications

La sécurisation d applications Université Toulouse 1 Sciences Sociales 10 mars 2008 Les firewalls ne suffisent plus Mais ont-ils jamais été suffisants? La protection à 100% n existe pas. De plus certains protocoles doivent absolument

Plus en détail

INSA - ASI TechnoWeb : Serveur Web et protocole HTTP 1/40. Technologie Web. Serveur Web et protocole HTTP. Alexandre Pauchet

INSA - ASI TechnoWeb : Serveur Web et protocole HTTP 1/40. Technologie Web. Serveur Web et protocole HTTP. Alexandre Pauchet INSA - ASI TechnoWeb : Serveur Web et protocole HTTP 1/40 Technologie Web Serveur Web et protocole HTTP Alexandre Pauchet INSA Rouen - Département ASI BO.B.RC.18, pauchet@insa-rouen.fr INSA - ASI TechnoWeb

Plus en détail

Hébergement de site web Damien Nouvel

Hébergement de site web Damien Nouvel Hébergement de site web Plan L'hébergeur Le serveur web Apache Sites dynamiques 2 / 27 Plan L'hébergeur Le serveur web Apache Sites dynamiques 3 / 27 L'hébergeur L'hébergeur sous-traite l'architecture

Plus en détail

DESS TEXTE. Outils informatiques 5. HTML et le protocole HTTP p.1

DESS TEXTE. Outils informatiques 5. HTML et le protocole HTTP p.1 Outils informatiques 5. HTML et le protocole HTTP DESS TEXTE Outils informatiques 5. HTML et le protocole HTTP p.1 Introduction But du cours : récupérer automatiquement des données accessibles sur le web

Plus en détail

Chapitre 4 PROTOCOLES SÉCURISÉS

Chapitre 4 PROTOCOLES SÉCURISÉS Chapitre 4 PROTOCOLES SÉCURISÉS 52 Protocoles sécurisés Inclus dans la couche application Modèle TCP/IP Pile de protocoles HTTP, SMTP, FTP, SSH, IRC, SNMP, DHCP, POP3 4 couche application HTML, MIME, ASCII

Plus en détail

Protection des protocoles www.ofppt.info

Protection des protocoles www.ofppt.info ROYAUME DU MAROC Office de la Formation Professionnelle et de la Promotion du Travail Protection des protocoles DIRECTION RECHERCHE ET INGENIERIE DE FORMATION SECTEUR NTIC Sommaire 1. Introduction... 2

Plus en détail

TP DE PROGRAMMATION RESEAU : LES SOCKETS

TP DE PROGRAMMATION RESEAU : LES SOCKETS - ENSEIRB - TP DE PROGRAMMATION RESEAU : LES SOCKETS Patrice KADIONIK - 1/11- TABLE DES MATIERES www.enseirb.fr/~kadionik 1. BUT DES TRAVAUX PRATIQUES...3 2. SEANCE 1 : UTILISATION DES COMMANDES UNIX/LINUX

Plus en détail

Architectures web/bases de données

Architectures web/bases de données Architectures web/bases de données I - Page web simple : HTML statique Le code HTML est le langage de base pour concevoir des pages destinées à être publiées sur le réseau Internet ou intranet. Ce n'est

Plus en détail

scripting L art du Comprendre les langages de script Korn Shell, Perl, Python, Visual Basic Scripting et Windows PowerShell Kais Ayari

scripting L art du Comprendre les langages de script Korn Shell, Perl, Python, Visual Basic Scripting et Windows PowerShell Kais Ayari L art du scripting Comprendre les langages de script Korn Shell, Perl, Python, Visual Basic Scripting et Windows PowerShell Kais Ayari Groupe Eyrolles, 2015, ISBN : 978-2-212-14038-5 Table des matières

Plus en détail

TP : commande awk. D'après le cours en ligne de Isabelle Vollant http://www.shellunix.com/awk.html

TP : commande awk. D'après le cours en ligne de Isabelle Vollant http://www.shellunix.com/awk.html TP : commande awk D'après le cours en ligne de Isabelle Vollant http://www.shellunix.com/awk.html Nous reprenons dans ce TP une grande partie du cours de Isabelle Vollant en simplifiant quelques informations.

Plus en détail

Java et Objet. Amélie Lambert 2014-2015. Amélie Lambert 2014-2015 1 / 42

Java et Objet. Amélie Lambert 2014-2015. Amélie Lambert 2014-2015 1 / 42 Java et Objet Amélie Lambert 2014-2015 Amélie Lambert 2014-2015 1 / 42 Chapitre 8 Développement d applications Web Amélie Lambert 2014-2015 2 / 42 Plan du cours Typologie des applications Web Architecture

Plus en détail

Fonctionnement du serveur Z39.50

Fonctionnement du serveur Z39.50 Fonctionnement du serveur Z39.50 Table des matières 1 Configuration du serveur...2 1.1 Comportement du serveur...2 1.2 Configuration de la traduction z39.50 -> base de données...2 1.3 Configuration du

Plus en détail

Manuel d'installation

Manuel d'installation CyberMUT P@iement P@iement CIC P@iement OBC SERVICE SECURISE DE PAIEMENT INTERNET PAR CARTE BANCAIRE (Sécurisé par le protocole SSL) Manuel d'installation (Document 2/2) EURO Sp.Tech. 1.2.8 Octobre 2001

Plus en détail

Systèmes d'informations

Systèmes d'informations Systèmes d'informations C'est un ensemble d'outils pour stocker / gérer / diffuser des informations / des données Le stockage : Bases de données + SGDBR La gestion : Saisie, Mise à jour, Contrôle La diffusion

Plus en détail

Le protocole HTTP. 10 minutes pour comprendre. HTTP/0.9 - Lacunes et limitations HTTP/1.0 HTTP/1.1

Le protocole HTTP. 10 minutes pour comprendre. HTTP/0.9 - Lacunes et limitations HTTP/1.0 HTTP/1.1 Le protocole HTTP 10 minutes pour comprendre HTTP/0.9 - Lacunes et limitations HTTP/1.0 HTTP/1.1 http://tic01.tic.ec-lyon.fr/~muller/cours-tdw/http.pdf http://tic01.tic.ec-lyon.fr/~muller/cours-tdw/httpbw.pdf

Plus en détail

Ligne de commande Linux avancée et scriptage bash (Linux 201)

Ligne de commande Linux avancée et scriptage bash (Linux 201) Ligne de commande Linux avancée et scriptage bash (Linux 201) laurent.duchesne@calculquebec.ca maxime.boissonneault@calculquebec.ca Université Laval - Septembre 2014 1 2 Se connecter à Colosse ssh colosse.calculquebec.ca

Plus en détail

Optimisation de serveurs web

Optimisation de serveurs web Optimisation de serveurs web Christian Quest cquest@cquest.org 21 juin 01 4 Optimiser: pourquoi? Améliorer la qualité de service: - Réduire les temps de réponses - Réduire les temps de transfert et d'affichage

Plus en détail

A. L opérateur ET logique

A. L opérateur ET logique IV.5 Les Opérateurs A. L opérateur ET logique cmd1 && cmd2 On exécutera cmd2 uniquement si la commande cmd1 se termine correctement Exemple : $ pwd /usr/c1 $ mkdir tmp $ test d $HOME/tmp && cd $HOME/tmp

Plus en détail

Fonctionnement du Site Web Dynamique:

Fonctionnement du Site Web Dynamique: Fonctionnement du Site Web Dynamique: Site Web Dynamique: Un site Web dynamique est en faite un site Web dont les pages qu'il contient peuvent être générées dynamiquement, c'est à dire à la demande de

Plus en détail

Protocoles DHCP et DNS

Protocoles DHCP et DNS Protocoles DHCP et DNS DHCP (Dynamic Host Configuration Protocol) est un protocole qui permet à un serveur DHCP (Unix, Windows, AS400...) d'affecter des adresses IP temporaires (et d'autres paramètres)

Plus en détail

SQUID P r o x y L i b r e p o u r U n i x e t L i n u x

SQUID P r o x y L i b r e p o u r U n i x e t L i n u x SQUID P r o x y L i b r e p o u r U n i x e t L i n u x 1. P r é s e n t a t i o n : SQUID est un proxy (serveur mandataire en français) cache sous linux. De ce fait il permet de partager un accès Internet

Plus en détail

Bases de données et Sites Web. Li345

Bases de données et Sites Web. Li345 Bases de données et Sites Web. Li345 Remerciements à: Stéphane Gançarski et Philippe Rigaux. Ces transparents sont fortement inspirés du très bon livre : Pratique de MySQL et PHP, troisième édition Philippe

Plus en détail

TD : Protocoles applicatifs DNS, SMTP, HTTP

TD : Protocoles applicatifs DNS, SMTP, HTTP TD : Protocoles applicatifs DNS, SMTP, HTTP 1 Domain Name System (DNS) 1.1 Structure On considère l arbre de noms ci-dessous. Les noms entre parenthèses sont les serveurs DNS ayant autorité sur ces parties

Plus en détail

Cours Web : Introduction

Cours Web : Introduction Cours Web : Introduction Catherine Letondal letondal@pasteur.fr Institut Pasteur Cours Web IEB 2005 p.1/?? Pourquoi un cours Web? le Web : c est stratégique en biologie c est un bon exemple de système

Plus en détail

HTTPS. Sommaire : Définition A quoi sert-il? Son but Différences HTTP/HTTPS SSL Fonctionnement Le cryptage Avantage/Inconcénient Mise en oeuvre

HTTPS. Sommaire : Définition A quoi sert-il? Son but Différences HTTP/HTTPS SSL Fonctionnement Le cryptage Avantage/Inconcénient Mise en oeuvre HTTPS Sommaire : Définition A quoi sert-il? Son but Différences HTTP/HTTPS SSL Fonctionnement Le cryptage Avantage/Inconcénient Mise en oeuvre Définition HTTPS (HyperText Transfer Protocol Secure) C'est

Plus en détail

NFA016 : Les protocoles. Notion de protocole. Modèle OSI

NFA016 : Les protocoles. Notion de protocole. Modèle OSI NFA016 : Les protocoles O. Pons, S. Rosmorduc Conservatoire National des Arts & Métiers Notion de protocole Un réseau: ensemble de machines reliées entre elles. Communiquer: Parler "la même langue". Protocole

Plus en détail

Le protocole HTTP - 10 minutes pour comprendre - D. Muller - 26/08/99. Le protocole HTTP - 10 minutes pour comprendre - Le principe client-serveur

Le protocole HTTP - 10 minutes pour comprendre - D. Muller - 26/08/99. Le protocole HTTP - 10 minutes pour comprendre - Le principe client-serveur 10 minutes pour comprendre HTTP/0.9 - Lacunes et limitations 10 minutes pour comprendre HTTP/1.1 http://tic01.tic.ec-lyon.fr/~muller/cours-tdw/httpbw.pdf Le principe client-serveur Une session HTTP/0.9

Plus en détail

Introduction ASP.NET

Introduction ASP.NET 1 Sommaire Introduction... 1 1 Framework... 2 1.1 Général (.NET)... 2 1.2 ASP.NET... 2 2 Prérequis... 2 3 Présentation des bases d un projet ASP.NET... 3 3.1 Création d un projet... 3 3.2 Site Web : Les

Plus en détail

Introduction aux Systèmes Distribués. Introduction générale

Introduction aux Systèmes Distribués. Introduction générale Introduction aux Systèmes Distribués Licence Informatique 3 ème année Introduction générale Eric Cariou Université de Pau et des Pays de l'adour Département Informatique Eric.Cariou@univ-pau.fr 1 Plan

Plus en détail

TP Cryptographie. Seul les services ssh et http/https sont accessibles depuis le poste de travail vers le serveur

TP Cryptographie. Seul les services ssh et http/https sont accessibles depuis le poste de travail vers le serveur TP Cryptographie Utiliser la machine virtuelle : devil crypto.tar.bz2!! Utiliser l'annexe en fin de TP. Le serveur devil sera considéré comme le serveur web, de plus il met à disposition: Le login administrateur

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

Cours de Réseau et communication Unix n 8

Cours de Réseau et communication Unix n 8 Cours de Réseau et communication Unix n 8 Edouard THIEL Faculté des Sciences Université d Aix-Marseille (AMU) Septembre 2014 Les transparents de ce cours sont téléchargeables ici : http://pageperso.lif.univ-mrs.fr/~edouard.thiel/ens/rezo/

Plus en détail

Master 1 Informatique. Emmanuel Godard. 22 novembre 2005

Master 1 Informatique. Emmanuel Godard. 22 novembre 2005 Réseaux Master 1 Informatique Emmanuel Godard Université de Provence 22 novembre 2005 Emmanuel Godard (Université de Provence) Réseaux 22 novembre 2005 1 / 1 Emmanuel Godard (Université de Provence) Réseaux

Plus en détail

Langages et technologies du Web 1

Langages et technologies du Web 1 Langages et technologies du Web 1 Manuel ATENCIA manuel.atencia-arcas@upmf-grenoble.fr Objectifs Comprendre le fonctionnement du World Wide Web Produire des documents web statiques et dynamiques 1 2 vocabulaire

Plus en détail

Programmation du Web : Présentation et description du langage PHP

Programmation du Web : Présentation et description du langage PHP Programmation du Web : Présentation et description du langage PHP Jean-Baptiste Vioix (jean-baptiste.vioix@iut-dijon.u-bourgogne.fr) IUT de Dijon-Auxerre - LE2I http://jb.vioix.free.fr 1-36 Présentation

Plus en détail

Outline. Traces sur le client. Cookies. Traces sur le client. Emmanuel Benoist. Chargé de cours Université de Lausanne.

Outline. Traces sur le client. Cookies. Traces sur le client. Emmanuel Benoist. Chargé de cours Université de Lausanne. Traces sur le client Emmanuel Benoist Chargé de cours Université de Lausanne Traces sur le client 1 Cookies 2 Lors d une saisie, il faut prouver quel ordinateur a fait quoi? L adresse IP seule n est pas

Plus en détail

Macros et langage VBA Apprendre à programmer sous Excel (3ième édition)

Macros et langage VBA Apprendre à programmer sous Excel (3ième édition) Introduction A. Introduction 15 B. À qui s'adresse ce livre? 15 C. Qu est-ce qu une macro? 15 D. Quel intérêt de faire des macros? 16 E. Contenu de ce livre 16 L'éditeur de Visual Basic A. Introduction

Plus en détail

Réseaux. 1 Généralités. E. Jeandel

Réseaux. 1 Généralités. E. Jeandel 1 Généralités Réseaux Couche Application E. Jeandel Couche application Dernière couche du modèle OSI et TCP/IP Échange de messages entre processus Protocole Un protocole de niveau application doit spécifier

Plus en détail

Programmation Web. Thierry Hamon

Programmation Web. Thierry Hamon 1/27 Programmation Web Thierry Hamon Bureau H202 - Institut Galilée Tél. : 33 1.48.38.35.53 Bureau 150 LIM&BIO EA 3969 Université Paris 13 - UFR Léonard de Vinci 74, rue Marcel Cachin, F-93017 Bobigny

Plus en détail

Réseaux. Couche Application. E. Jeandel

Réseaux. Couche Application. E. Jeandel Réseaux Couche Application E. Jeandel 1 Généralités Couche application Dernière couche du modèle OSI et TCP/IP Échange de messages entre processus Protocole Un protocole de niveau application doit spécifier

Plus en détail

Compilateurs : Analyse lexicale. Vous êtes ici 2. Analyse lexicale 4. Matthieu Amiguet. En entrée d un compilateur, on a généralement un fichier

Compilateurs : Analyse lexicale. Vous êtes ici 2. Analyse lexicale 4. Matthieu Amiguet. En entrée d un compilateur, on a généralement un fichier Compilateurs : Matthieu Amiguet 2009 2010 Vous êtes ici 2 Partie Avant Analyse syntaxique Analyse sémantique Arbre syntaxique abstrait (AST) Partie Arrière Optimisation de l AST Génération de code Optimisation

Plus en détail

HTTP. HyperText Transfert Protocol

HTTP. HyperText Transfert Protocol HyperText Transfert Protocol 1 client Web (Navigateur) URL Internet serveur Web test.xhtml Quels sont les échanges entre un client web (navigateur) et un serveur web? 2 Le protocole HTTP Protocole langage

Plus en détail

Réseaux et protocoles Damien Nouvel

Réseaux et protocoles Damien Nouvel Réseaux et protocoles Plan Les couches du réseau Suite de protocoles TCP/IP Protocoles applicatifs pour les sites web Requêtes HTTP 2 / 35 Plan Les couches du réseau Suite de protocoles TCP/IP Protocoles

Plus en détail

Introduction aux Langages Informatiques. Le langage awk

Introduction aux Langages Informatiques. Le langage awk Septembre 1995 Introduction aux Langages Informatiques Le langage awk wk est un filtre qui facilite le traîtement de texte. awk est programmable et con- des constructions pour des instructions conditionnelles,

Plus en détail

Réseaux. Couche Application. E. Jeandel. Emmanuel.Jeandel at lif.univ-mrs.fr. E. Jeandel, Lif Réseaux, Couche Application 1/12

Réseaux. Couche Application. E. Jeandel. Emmanuel.Jeandel at lif.univ-mrs.fr. E. Jeandel, Lif Réseaux, Couche Application 1/12 Réseaux Couche Application E. Jeandel Emmanuel.Jeandel at lif.univ-mrs.fr E. Jeandel, Lif Réseaux, Couche Application 1/12 Contenu 1 Généralités E. Jeandel, Lif Réseaux, Couche Application 2/12 Couche

Plus en détail

Protocoles Applicatifs

Protocoles Applicatifs Programmation Réseau Protocoles Applicatifs Jean-Baptiste.Yunes@liafa.jussieu.fr UFR Informatique 2011-2012 Protocoles Protocoles applicatifs on appelle protocole applicatif ou protocole d application

Plus en détail

Architecture client-serveur

Architecture client-serveur Architecture client-serveur Yannick Prié UFR Informatique Université Claude Bernard Lyon 1 2007-2008 Master SIB M1 UE 3 / Bloc 4 Cours 3 Objectifs du cours Rappels sur les ordinateurs réseau et Internet.

Plus en détail

PHP. Introduction à la programmation web serveur. Université Nice Sophia-Antipolis. Découverte et pratique avec PHP. Fabien Givors

PHP. Introduction à la programmation web serveur. Université Nice Sophia-Antipolis. Découverte et pratique avec PHP. Fabien Givors Introduction à la programmation web serveur Découverte et pratique avec PHP Fabien Givors d après les cours de Philippe Renevier Gonin Université Nice Sophia-Antipolis Année universitaire 2014-2015 PHP

Plus en détail

Débuter en Perl - François Dagorn - Olivier Salaun - 19 avril 2004

Débuter en Perl - François Dagorn - Olivier Salaun - 19 avril 2004 Débuter en Perl - François Dagorn - Olivier Salaun - 19 avril 2004 Résumé Ce document est une présentation tutoriale du langage Perl. Il ne couvre pas tous les aspects du langage, sa lecture ne dispense

Plus en détail

Vulnérabilités et sécurisation des applications Web

Vulnérabilités et sécurisation des applications Web OSSIR 09/09/2002 Vulnérabilités, attaques et sécurisation des applications Web Pourquoi les firewalls sont impuissants patrick.chambet@edelweb.fr http://www.edelweb.fr http://www.chambet.com Page 1 Planning

Plus en détail

Internet et applications dans l entreprise (1) Scripts clients et scripts CGI

Internet et applications dans l entreprise (1) Scripts clients et scripts CGI Licence professionnelle «Management des organisations» Option «Systèmes d information et Réseaux» Internet et applications dans l entreprise (1) Scripts clients et scripts CGI O. Auzende 2010-2011 INTRODUCTION...

Plus en détail