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

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

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 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

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

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

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

(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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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. 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

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

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

Algorithmique et Programmation, IMA

Algorithmique et Programmation, IMA Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions

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

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

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

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

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

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

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

Perl Orienté Objet BioPerl There is more than one way to do it

Perl Orienté Objet BioPerl There is more than one way to do it Perl Orienté Objet BioPerl There is more than one way to do it Bérénice Batut, berenice.batut@udamail.fr DUT Génie Biologique Option Bioinformatique Année 2014-2015 Perl Orienté Objet - BioPerl Rappels

Plus en détail

TP RPV DE NIVEAU APPLICATION EXTRANET

TP RPV DE NIVEAU APPLICATION EXTRANET TP RPV DE NIVEAU APPLICATION EXTRANET Étudions le cas de l entreprise MAROQ. L entreprise a décidé d ouvrir une partie de son SI (Système d information) à ses partenaires. Cette ouverture s effectue par

Plus en détail

HTTP 1.1. HyperText Transfer Protocol ... ... TCP IP ...

HTTP 1.1. HyperText Transfer Protocol ... ... TCP IP ... HTTP 1.1 Place de http dans le modèle osi : HyperText Transfer Protocol...... TCP IP...... HTTP est un protocole «sans état» : chaque page WEB est transmise dans une connexion séparée (sauf pour les connections

Plus en détail

Architecture client-serveur

Architecture client-serveur Architecture client-serveur Yannick Prié UFR Informatique Université Claude Bernard Lyon 1 Objectifs du cours Rappels sur les ordinateurs réseau et Internet. Communication entre programmes et entre machines.

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

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6 Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6 1 BERNIER François http://astronomie-astrophotographie.fr Table des matières Installation d un serveur HTTP (Hypertext Transfer

Plus en détail

Activité sur Meteor. Annexe 1 : notion de client-serveur et notion de base de données

Activité sur Meteor. Annexe 1 : notion de client-serveur et notion de base de données Activité sur Meteor Annexe 1 : notion de client-serveur et notion de base de données Notion de client-serveur Que se passe-t-il lorsque vous tapez dans la barre d'adresse de votre navigateur «http://www.google.fr»?

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

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

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

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

TP 1. Prise en main du langage Python

TP 1. Prise en main du langage Python TP. Prise en main du langage Python Cette année nous travaillerons avec le langage Python version 3. ; nous utiliserons l environnement de développement IDLE. Étape 0. Dans votre espace personnel, créer

Plus en détail

FOIRE AUX QUESTIONS PAIEMENT PAR INTERNET. Nom de fichier : Monetico_Paiement_Foire_aux_Questions_v1.7 Numéro de version : 1.7 Date : 2014-05-29

FOIRE AUX QUESTIONS PAIEMENT PAR INTERNET. Nom de fichier : Monetico_Paiement_Foire_aux_Questions_v1.7 Numéro de version : 1.7 Date : 2014-05-29 FOIRE AUX QUESTIONS PAIEMENT PAR INTERNET Nom de fichier : Monetico_Paiement_Foire_aux_Questions_v1.7 Numéro de version : 1.7 Date : 2014-05-29 FOIRE AUX QUESTIONS Confidentiel Titre du document : Monetico

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

Couche application. La couche application est la plus élevée du modèle de référence.

Couche application. La couche application est la plus élevée du modèle de référence. Couche application La couche application est la plus élevée du modèle de référence. Elle est la source et la destination finale de toutes les données à transporter. Couche application La couche application

Plus en détail

«Cachez-moi cette page!»

«Cachez-moi cette page!» «Cachez-moi cette page!» Atelier Pratique 1h30 Hugo Hamon (@hhamon) http://hugohamon.com Qui suis-je? Au menu de cet atelier 1. Introduction 2. Avantages 3. Expiration (Expires & Cache-Control) 4. Validation

Plus en détail

WebDAV en 2 minutes. Tous ces objectifs sont complémentaires et ils sont atteints grâce au seul protocole WebDAV. Scénarii

WebDAV en 2 minutes. Tous ces objectifs sont complémentaires et ils sont atteints grâce au seul protocole WebDAV. Scénarii WebDAV en 2 minutes le but affirmé du groupe de travail WebDAV (DAV) est (pour ses concepteurs) de "définir les extensions de HTTP nécessaires pour assurer la disponibilité d'outils WEB de création collective

Plus en détail

Le service FTP. M.BOUABID, 04-2015 Page 1 sur 5

Le service FTP. M.BOUABID, 04-2015 Page 1 sur 5 Le service FTP 1) Présentation du protocole FTP Le File Transfer Protocol (protocole de transfert de fichiers), ou FTP, est un protocole de communication destiné à l échange informatique de fichiers sur

Plus en détail

titre : CENTOS_CUPS_install&config Système : CentOs 5.7 Technologie : Cups 1.3.7 Auteur : Charles-Alban BENEZECH

titre : CENTOS_CUPS_install&config Système : CentOs 5.7 Technologie : Cups 1.3.7 Auteur : Charles-Alban BENEZECH 2012 Les tutos à toto CUPS server - install and configure Réalisée sur CentOS 5.7 Ecrit par Charles-Alban BENEZECH 2012 titre : CENTOS_CUPS_install&config Système : CentOs 5.7 Technologie : Cups 1.3.7

Plus en détail

Devoir Surveillé de Sécurité des Réseaux

Devoir Surveillé de Sécurité des Réseaux Année scolaire 2009-2010 IG2I L5GRM Devoir Surveillé de Sécurité des Réseaux Enseignant : Armand Toguyéni Durée : 2h Documents : Polycopiés de cours autorisés Note : Ce sujet comporte deux parties. La

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

Introduction à HTTP. Chapitre 3 3.1 HTTP 0.9

Introduction à HTTP. Chapitre 3 3.1 HTTP 0.9 Chapitre 3 Introduction à HTTP L HyperText Transfer Protocol, plus connu sous l abréviation HTTP (littéralement protocole de transfert hypertexte ) est un protocole de communication client-serveur développé

Plus en détail

Mr. B. Benaissa. Centre universitaire Nâama LOGO

Mr. B. Benaissa. Centre universitaire Nâama LOGO Mr. B. Benaissa Centre universitaire Nâama Dans ce chapitre, nous allons examiner le rôle de la couche application. Nous découvrirons également comment les applications, les services et les protocoles

Plus en détail

Linux sécurité des réseaux

Linux sécurité des réseaux Linux sécurité des réseaux serveurs mandataires (proxy) fbongat@ipsl.jussieu.fr 2007-2008 Qu'est-ce qu'un proxy? = mandataire (traduction) Un proxy est un service mandataire pour une application donnée.

Plus en détail

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères FORMATION PcVue Mise en œuvre de WEBVUE Journées de formation au logiciel de supervision PcVue 8.1 Lieu : Lycée Pablo Neruda Saint Martin d hères Centre ressource Génie Electrique Intervenant : Enseignant

Plus en détail

Application Web et J2EE

Application Web et J2EE Application Web et J2EE Servlet, JSP, Persistence, Méthodologie Pierre Gambarotto Département Informatique et Math appli ENSEEIHT Plan Introduction 1 Introduction Objectfis

Plus en détail

SSH, le shell sécurisé

SSH, le shell sécurisé , le shell sécurisé Objectifs : 1. Présenter le protocole et les outils associés Sébastien JEAN Pourquoi 1/2? Les services standards ne supportent que peu de propriétés de sécurité souvent l identification,

Plus en détail

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique Institut Supérieure Aux Etudes Technologiques De Nabeul Département Informatique Support de Programmation Java Préparé par Mlle Imene Sghaier 2006-2007 Chapitre 1 Introduction au langage de programmation

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

PHP 5.4 Développez un site web dynamique et interactif

PHP 5.4 Développez un site web dynamique et interactif Editions ENI PHP 5.4 Développez un site web dynamique et interactif Collection Ressources Informatiques Table des matières Table des matières 1 Chapitre 1 Introduction 1. Objectif de l'ouvrage.............................................

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

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental

Plus en détail

Programmation en VBA

Programmation en VBA Programmation en VBA Présentation de Visual Basic Visual Basic : Basic : dérivé du langage Basic (Biginner s All purpose Symbolic Instruction Code) des années 60 Visual : dessin et aperçu de l interface

Plus en détail

Chapitre 4 Les Servlets. 1. Qu'est-ce qu'une Servlet? 1.1 Présentation. 1.2 Requêtes HTTP

Chapitre 4 Les Servlets. 1. Qu'est-ce qu'une Servlet? 1.1 Présentation. 1.2 Requêtes HTTP 210 Les Servlets 1. Qu'est-ce qu'une Servlet? 1.1 Présentation Les Servlets sont la base de la programmation Java EE. La conception d'un site Web dynamique en Java repose sur ces éléments. Une Servlet

Plus en détail

Programmation Internet Cours 4

Programmation Internet Cours 4 Programmation Internet Cours 4 Kim Nguy ên http://www.lri.fr/~kn 17 octobre 2011 1 / 23 Plan 1. Système d exploitation 2. Réseau et Internet 3. Web 3.1 Internet et ses services 3.1 Fonctionnement du Web

Plus en détail

INTRODUCTION AU WEB ARCHITECTURE DU WEB INTRODUCTION AU WEB ARCHITECTURE DU WEB JEAN-PIERRE LOZI 1

INTRODUCTION AU WEB ARCHITECTURE DU WEB INTRODUCTION AU WEB ARCHITECTURE DU WEB JEAN-PIERRE LOZI 1 INTRODUCTION AU WEB ARCHITECTURE DU WEB Par Jean-Pierre Lozi Basé sur les cours d Andrea Tettamanzi et Philippe Renevier INTRODUCTION AU WEB ARCHITECTURE DU WEB JEAN-PIERRE LOZI 1 PRÉSENTATION/PROGRAMME

Plus en détail

Protocole TCP/IP. On classe généralement les protocoles en deux catégories selon le niveau de contrôle des données que l'on désire :

Protocole TCP/IP. On classe généralement les protocoles en deux catégories selon le niveau de contrôle des données que l'on désire : Nom.. Prénom.. Protocole TCP/IP Qu'est-ce qu'un protocole? Un protocole est une méthode de codage standard qui permet la communication entre des processus s'exécutant éventuellement sur différentes machines,

Plus en détail

Travaux pratiques Utilisation de Wireshark pour examiner les captures FTP et TFTP

Travaux pratiques Utilisation de Wireshark pour examiner les captures FTP et TFTP Travaux pratiques Utilisation de Wireshark pour examiner les captures FTP et TFTP Topologie Première partie (FTP) La première partie mettra l accent sur une capture TCP d une session FTP. Cette topologie

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

Manuel d'utilisation d'apimail V3

Manuel d'utilisation d'apimail V3 Manuel d'utilisation d'apimail V3 I Préambule Page 3 II Présentation Page 4 III Mise en route Configuration Page 5 Messagerie Serveur smtp Serveur pop Compte pop Mot de passe Adresse mail Laisser les messages

Plus en détail

Guide d'initiation aux. certificats SSL. Faire le bon choix parmi les options qui s'offrent à vous en matière de sécurité en ligne. Document technique

Guide d'initiation aux. certificats SSL. Faire le bon choix parmi les options qui s'offrent à vous en matière de sécurité en ligne. Document technique Document technique : Guide d'initiation aux certificats ssl Document technique Guide d'initiation aux certificats SSL Faire le bon choix parmi les options qui s'offrent à vous en matière de sécurité en

Plus en détail

E-TRANSACTIONS. Guide du programmeur API Plug-in. Version 1.1

E-TRANSACTIONS. Guide du programmeur API Plug-in. Version 1.1 E-TRANSACTIONS Guide du programmeur API Plug-in Version 1.1 Avertissements : Le fichier Version.txt précise l'environnement dans lequel l API a été compilée et testée. L'installation de l API sur tout

Plus en détail

L identité numérique. Risques, protection

L identité numérique. Risques, protection L identité numérique Risques, protection Plan Communication sur l Internet Identités Traces Protection des informations Communication numérique Messages Chaque caractère d un message «texte» est codé sur

Plus en détail

Tableaux (introduction) et types de base

Tableaux (introduction) et types de base Tableaux (introduction) et types de base A. Motivation..................................................... 4 B. Les tableaux.................................................... 5 C. Construction des tableaux.......................................

Plus en détail

Chapitre 1 Comment se connecter à Internet... 13

Chapitre 1 Comment se connecter à Internet... 13 Chapitre 1 Comment se connecter à Internet... 13 1.1 Adresse IP permanente ou temporaire... 16 1.2 Débit d une connexion... 16 1.3 Utilisation occasionnelle (RTC, Numéris)... 20 RTC... 20 RNIS... 24 1.4

Plus en détail

Proxy et reverse proxy. Serveurs mandataires et relais inverses

Proxy et reverse proxy. Serveurs mandataires et relais inverses Serveurs mandataires et relais inverses Qu'est-ce qu'un proxy? Proxy = mandataire (traduction) Un proxy est un service mandataire pour une application donnée. C'est à dire qu'il sert d'intermédiaire dans

Plus en détail

Types MIME (2) Typage des ressources Internet. Les URI. Syntaxe dans les URI. Possibilité de spécifier un paramètre du sous-type

Types MIME (2) Typage des ressources Internet. Les URI. Syntaxe dans les URI. Possibilité de spécifier un paramètre du sous-type Typage des ressources Internet Types MIME (Multi-purpose Internet Mail Extension) RFC 2046. Composé par un type et un sous-type Les types principaux sont les suivants text image audio video message multipart

Plus en détail

L'AAA, késako? Bruno Bonfils, , Novembre 2005. Sous ce terme d'apparence barbare est regroupé l'ensemble des concepts suivants :

L'AAA, késako? Bruno Bonfils, <asyd@solaris fr.org>, Novembre 2005. Sous ce terme d'apparence barbare est regroupé l'ensemble des concepts suivants : Introduction L'AAA, késako? Bruno Bonfils, , Novembre 2005 Sous ce terme d'apparence barbare est regroupé l'ensemble des concepts suivants : Authentication (authentification) Authorization

Plus en détail

Pages WWW interactives et CGI

Pages WWW interactives et CGI Pages WWW interactives et CGI cgi-intro Pages WWW interactives et CGI Code: cgi-intro Originaux url: http://tecfa.unige.ch/guides/tie/html/cgi-intro/cgi-intro.html url: http://tecfa.unige.ch/guides/tie/pdf/files/cgi-intro.pdf

Plus en détail

Serveur Web - IIS 7. IIS 7 sous Windows 2008

Serveur Web - IIS 7. IIS 7 sous Windows 2008 Serveur Web - IIS 7 Le livre de référence de ce chapitre est «Windows Server 2008 - Installation, configuration, gestion et dépannage» des éditions ENI, disponible sur egreta. Le site de référence pour

Plus en détail

Informatique Générale. Partie 3 - TD Les réseaux. Travaux dirigés associés au CM 3. Informatique, G. KEMBELLEC

Informatique Générale. Partie 3 - TD Les réseaux. Travaux dirigés associés au CM 3. Informatique, G. KEMBELLEC Informatique Générale Partie 3 - TD Les réseaux Travaux dirigés associés au CM 3 1 Chef de projet en ingénierie documentaire Les réseaux et internet Travaux dirigés 2 Réseaux locaux, étendus, Internet

Plus en détail

Service de certificat

Service de certificat Service de certificat Table des matières 1 Introduction...2 2 Mise en place d une autorité de certification...3 2.1 Introduction...3 2.2 Installer le service de certificat...4 3 Sécuriser un site web avec

Plus en détail

Hacking et Forensic Développez vos propres outils en Python

Hacking et Forensic Développez vos propres outils en Python Le réseau 1. Introduction 11 2. Les sockets 12 2.1 Création d'un socket 12 2.2 Échange de données 13 2.3 Les erreurs 14 2.4 Socket et FTP 17 2.5 Utilisation de l'udp 19 3. Création d'un serveur 20 3.1

Plus en détail

SYSTEME DE GESTION DES ENERGIES EWTS EMBEDDED WIRELESS TELEMETRY SYSTEM

SYSTEME DE GESTION DES ENERGIES EWTS EMBEDDED WIRELESS TELEMETRY SYSTEM SYSTEME DE GESTION DES ENERGIES EWTS EMBEDDED WIRELESS TELEMETRY SYSTEM Copyright TECH 2012 Technext - 8, avenue Saint Jean - 06400 CANNES Société - TECHNEXT France - Tel : (+ 33) 6 09 87 62 92 - Fax :

Plus en détail

Stockage du fichier dans une table mysql:

Stockage du fichier dans une table mysql: Stockage de fichiers dans des tables MYSQL avec PHP Rédacteur: Alain Messin CNRS UMS 2202 Admin06 30/06/2006 Le but de ce document est de donner les principes de manipulation de fichiers dans une table

Plus en détail

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles) 1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d

Plus en détail

Gestion du Serveur Web

Gestion du Serveur Web Gestion du Serveur Web Console de gestion du Serveur Web Une console de gestion est disponible dans l'outil de l'administrateur. Cette console de gestion vous permet de configurer les services JetClouding

Plus en détail

L envoi d un formulaire par courriel. Configuration requise... 236 Mail Texte... 237 Mail HTML... 242 Check-list... 248

L envoi d un formulaire par courriel. Configuration requise... 236 Mail Texte... 237 Mail HTML... 242 Check-list... 248 L envoi d un formulaire par courriel Configuration requise... 236 Mail Texte... 237 Mail HTML... 242 Check-list... 248 Chapitre 9 L envoi d un formulaire par courriel L envoi par courriel d informations

Plus en détail

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

Vulnérabilités et sécurisation des applications Web Rencontres SPIRAL 25/02/03 Vulnérabilités et sécurisation des applications Web Pourquoi les firewalls sont impuissants face à certaines attaques patrick.chambet@edelweb.fr http://www.edelweb.fr http://www.chambet.com

Plus en détail

Configurer le Serveur avec une adresse IP Statique (INTERFACE :FastEthernet) : 172.16.0.253 et un masque 255.255.0.0

Configurer le Serveur avec une adresse IP Statique (INTERFACE :FastEthernet) : 172.16.0.253 et un masque 255.255.0.0 RES_TP3 Objectifs : Les réseaux informatiques : Client - Serveur Utilisation de serveurs DHCP HTTP DNS FTP Configuration basique d un routeur Utilisation du simulateur CISCO PACKET TRACER G.COLIN Architecture

Plus en détail