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

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

Le protocole HTTP. Sources. Caractéristiques de HTTP. Objectifs. Une transaction typique (2) Une transaction typique (1)

Le protocole HTTP. Sources. Caractéristiques de HTTP. Objectifs. Une transaction typique (2) Une transaction typique (1) Sources Le protocole Supports de cours de Olivier Glück (Lyon 1) Livres cités en bibliographie Le web Sylvain Brandel Sylvain.brandel@liris.univ-lyon1.fr http://bat710.univ-lyon1.fr/~sbrandel M1 Informatique

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

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

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

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

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

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

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

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

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

(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

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

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

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

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

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

1/ VARIABLES DE TYPE TABLEAU

1/ VARIABLES DE TYPE TABLEAU DEUXIEME PARTIE 1/ Les variables de type tableau 2/ Les opérateurs split and join 3/ Manipulation des expressions régulières pour le filtrage des motifs 4/ Ouverture de fichiers en lecture/écriture...

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

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

PHP. Olivier Aubert 1/24

PHP. Olivier Aubert 1/24 PHP Olivier Aubert 1/24 Introduction PHP = Hypertext PreProcessor Site officiel : http://www.php.net Créé en 1994 par Rasmus Lerdorf (Personal Home Page Tool) 1995 : ajout de la gestion des formulaires

Plus en détail

La hiérarchie du système DNS

La hiérarchie du système DNS LA RÉSOLUTION DE NOMS 1. PRÉSENTATION DU SYSTÈME DNS 1.1 INTRODUCTION À LA RÉSOLUTION DE NOMS Pour pouvoir communiquer, chaque machine présente sur un réseau doit avoir un identifiant unique. Avec le protocole

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

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

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

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

Internet. PC / Réseau

Internet. PC / Réseau Internet PC / Réseau Objectif Cette présentation reprend les notions de base : Objectif, environnement de l Internet Connexion, fournisseurs d accès Services Web, consultation, protocoles Modèle en couches,

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

Headers, cookies et sessions

Headers, cookies et sessions Headers, cookies et sessions Chargement de fichiers (upload) Entêtes HTTP et redirections Gestion des cookies et des sessions de connexions Authentification Validation des données Programmation avancée

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

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

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

Internet statique et dynamique Programmation côté Serveur. Programmation de sites web statiques et dynamiques. Programmation côté serveur

Internet statique et dynamique Programmation côté Serveur. Programmation de sites web statiques et dynamiques. Programmation côté serveur Programmation de sites web statiques et dynamiques Programmation côté serveur Jean CARTIER MASTER INI jcartier@laposte.net 1 SOMMAIRE Internet statique et dynamique Côté Client Le HTML : Principe de fonctionnement

Plus en détail

Laboratoire SSL avec JSSE

Laboratoire SSL avec JSSE Applications et Services Internet Rapport de laboratoire IL2008 20 janvier 2008 TABLE DES MATIÈRES I Table des matières 1 Introduction 1 2 Utilisation du serveur web 1 3 Clé publique générée 1 4 Réponses

Plus en détail

Programmation Web. Introduction. Jean-Rémy Falleri jfalleri@enseirb-matmeca.fr. Enseirb-Matmeca Département Télécommunications

Programmation Web. Introduction. Jean-Rémy Falleri jfalleri@enseirb-matmeca.fr. Enseirb-Matmeca Département Télécommunications Programmation Web Introduction Jean-Rémy Falleri jfalleri@enseirb-matmeca.fr Enseirb-Matmeca Département Télécommunications Présentation du module Savoir faire : comprendre et mettre en place une application

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

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

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

Apprendre à développer un site web avec PHP et MySQL Exercices pratiques et corrigés (3ième édition) Introduction 1. Objectif de l'ouvrage 15 2. Fonctionnement d un site web 16 Utilisation d EasyPHP 1. Introduction 19 2. Installation d'easyphp 20 3. Prise en main d EasyPHP 20 4. Création d une première

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

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

Informatique. Programmation en Python.

Informatique. Programmation en Python. BCPST 1 B 13 septembre 2015 Informatique. Programmation en Python. Ce document est un support de cours, il vous permet d avoir sa structure et ses éléments les plus importants. Au cours des séances en

Plus en détail

SISR3- Mise à disposition d une application web sécurisée

SISR3- Mise à disposition d une application web sécurisée Contexte : Le laboratoire pharmaceutique Galaxy-Swiss Bourdin (GSB) désire mettre à disposition des visiteurs médicaux une application Web de gestion des frais de remboursement. Il souhaite disposer d'une

Plus en détail

Formation Unix/Linux (6) Le Shell: programmation et écriture de scripts

Formation Unix/Linux (6) Le Shell: programmation et écriture de scripts Formation Unix/Linux (6) Le Shell: programmation et écriture de scripts Olivier BOEBION Mars 2004 1 Les expressions conditionnelles et les structures de contrôle 1.1 La commande test La commande interne

Plus en détail

Plan du travail. 2014/2015 Cours TIC - 1ère année MI 86

Plan du travail. 2014/2015 Cours TIC - 1ère année MI 86 Plan du travail Chapitre 1: Internet et le Web Chapitre 2: Principes d Internet Chapitre 3 : Principaux services d Internet Chapitre 4 : Introduction au langage HTML 2014/2015 Cours TIC - 1ère année MI

Plus en détail

Introduction à l algorithmique et à la programmation 2013-2014. Cyril Nicaud Cyril.Nicaud@univ-mlv.fr. Cours 1 / 5

Introduction à l algorithmique et à la programmation 2013-2014. Cyril Nicaud Cyril.Nicaud@univ-mlv.fr. Cours 1 / 5 Introduction à l algorithmique et à la programmation IUT 1ère année 2013-2014 Cyril Nicaud Cyril.Nicaud@univ-mlv.fr Cours 1 / 5 Déroulement du cours Organisation : 5 séances de 2h de cours 10 séances de

Plus en détail

Les solutions de paiement CyberMUT (Crédit Mutuel) et P@iement CIC. Qui contacter pour commencer la mise en place d une configuration de test?

Les solutions de paiement CyberMUT (Crédit Mutuel) et P@iement CIC. Qui contacter pour commencer la mise en place d une configuration de test? Les solutions de paiement CyberMUT (Crédit Mutuel) et P@iement CIC Qui contacter pour commencer la mise en place d une configuration de test? CyberMUT Paiement - Paiement CIC Commerce Electronique mailto:centrecom@e-i.com

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

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

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

Webmaster / Concepteur Multimedia

Webmaster / Concepteur Multimedia Durée : 217 heures Objectifs : Webmaster / Concepteur Multimedia Participants : Toute personne attirée par la création de site internet professionnel. Méthodes : Mise en pratique sur micro-ordinateur.

Plus en détail

IIS, c est quoi? Installation de IIS Gestion de base de IIS Méthodes d authentification. Edy Joachim,

IIS, c est quoi? Installation de IIS Gestion de base de IIS Méthodes d authentification. Edy Joachim, IIS, c est quoi? Historique de IIS Installation de IIS Gestion de base de IIS Méthodes d authentification Edy Joachim, Internet Information Services, c est quoi? Internet Information Services (IIS) 7.5

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

Cours CCNA 1. Exercices

Cours CCNA 1. Exercices Cours CCNA 1 TD3 Exercices Exercice 1 Enumérez les sept étapes du processus consistant à convertir les communications de l utilisateur en données. 1. L utilisateur entre les données via une interface matérielle.

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

Projet Magistère: SSL

Projet Magistère: SSL Université Joseph Fourier, IMA Janvier 2010 Table des matières 1 Introduction 2 Qu est ce que SSL? 3 Historique de SSL/TLS 4 Théorie à propos du fonctionnement de SSL 5 Structure d un certificat 6 SSL

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

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

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

Programmer avec Xcas : version 0.8.6 et 0.9

Programmer avec Xcas : version 0.8.6 et 0.9 Programmer avec Xcas : version 0.8.6 et 0.9 I. L environnement de travail de Xcas Xcas permet d écrire des programmes, comme n importe quel langage de programmation. C est un langage fonctionnel. L argument

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

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

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

Cet ouvrage a bénéficié des relectures attentives des zcorrecteurs.

Cet ouvrage a bénéficié des relectures attentives des zcorrecteurs. Cet ouvrage a bénéficié des relectures attentives des zcorrecteurs. Sauf mention contraire, le contenu de cet ouvrage est publié sous la licence : Creative Commons BY-NC-SA 2.0 La copie de cet ouvrage

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

Programmation shell sous Unix/Linux sh, ksh, bash (avec exercices corrigés) (4ième édition)

Programmation shell sous Unix/Linux sh, ksh, bash (avec exercices corrigés) (4ième édition) Introduction 1. Définition du shell 19 2. Caractéristiques d'un interpréteur de commandes 19 3. Interpréteurs de commandes (shells) 20 3.1 Historique 20 3.2 Avec quel shell faut-il programmer? 21 3.2.1

Plus en détail

Eléments de syntaxe du langage Java

Eléments de syntaxe du langage Java c jan. 2014, v3.0 Java Eléments de syntaxe du langage Java Sébastien Jean Le but de ce document est de présenter es éléments de syntaxe du langage Java : les types primitifs, les opérateurs arithmétiques

Plus en détail

Cours HTML/PHP. Cours HTML/PHP. E.Coquery. emmanuel.coquery@liris.cnrs.fr

Cours HTML/PHP. Cours HTML/PHP. E.Coquery. emmanuel.coquery@liris.cnrs.fr Cours HTML/PHP E.Coquery emmanuel.coquery@liris.cnrs.fr Pages Web Pages Web statiques Principe de fonctionnement : L utilisateur demande l accès à une page Web depuis son navigateur. Adresse tapée, clic

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

CHAPITRE 3 : Types de base, Opérateurs et Expressions

CHAPITRE 3 : Types de base, Opérateurs et Expressions CHAPITRE 3 : Types de base, Opérateurs et Expressions 1. Types simples Un type définit l'ensemble des valeurs que peut prendre une variable, le nombre d'octets à réserver en mémoire et les opérateurs que

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

Chapitre 4. Gestion de l environnement Page 125

Chapitre 4. Gestion de l environnement Page 125 Gestion de l environnement Page 125 Chapitre 4 A. Introduction...................................................... 126 B. Automatisation de la gestion des comptes utilisateurs..................... 126

Plus en détail

Le Web: les machines parlent aux machines

Le Web: les machines parlent aux machines Le Web: les machines parlent aux machines Historique Année 70 : ARPA (Advanced Research Project Agency). Relier les centres de recherche : ARPANET. 1972 : Premières spécifications TCP/IP (IP internet Protocol)

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

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

856 Adresse électronique et mode d accès

856 Adresse électronique et mode d accès 856 Adresse électronique et mode d accès Définition Cette zone contient les informations nécessaires pour localiser la ressource électronique décrite dans la notice. Ces informations identifient l adresse

Plus en détail

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Anne Tasso Java Le livre de premier langage 10 e édition Avec 109 exercices corrigés Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Table des matières Avant-propos Organisation de l ouvrage..............................

Plus en détail

Vulnérabilités logicielles Injection SQL

Vulnérabilités logicielles Injection SQL MGR850 Hiver 2014 Vulnérabilités logicielles Injection SQL Hakima Ould-Slimane Chargée de cours École de technologie supérieure (ÉTS) Département de génie électrique 1 Plan SQL Injection SQL Injections

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

Laboratoires de système d exploitation. Introduction à PERL. par Louis SWINNEN

Laboratoires de système d exploitation. Introduction à PERL. par Louis SWINNEN Département Informatique Laboratoires de système d exploitation Introduction à PERL par Louis SWINNEN Ce document est disponible sous licence Creative Commons indiquant qu il peut être reproduit, distribué

Plus en détail

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs Utilisation des classes de PourCGI par Michel Michaud, version 2002-11-23 Les fichiers PourCGI.h et PourCGI.cpp rendent disponibles deux classes et une fonction libre qui permettent de faire facilement

Plus en détail

IPv6. Lab 6: Déploiement. Objectif: Communication IPv6 entre noeuds dans des sites différents au travers d'internet (IPv4)

IPv6. Lab 6: Déploiement. Objectif: Communication IPv6 entre noeuds dans des sites différents au travers d'internet (IPv4) IPv6 Lab 6: Déploiement Objectif: Communication IPv6 entre noeuds dans des sites différents au travers d'internet (IPv4) v.1a E. Berera 1 Communication sites IPv6 par Internet (IPv4) Wi-Fi SSID:groupe1

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

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

II. EXCEL/QUERY ET SQL

II. EXCEL/QUERY ET SQL I. AU TRAVAIL, SQL! 1. Qu est-ce que SQL?... 19 2. SQL est un indépendant... 19 3. Comment est structuré le SQL?... 20 4. Base, table et champ... 21 5. Quelle est la syntaxe générale des instructions SQL?...

Plus en détail

PHP CLÉS EN MAIN. 76 scripts efficaces pour enrichir vos sites web. par William Steinmetz et Brian Ward

PHP CLÉS EN MAIN. 76 scripts efficaces pour enrichir vos sites web. par William Steinmetz et Brian Ward PHP CLÉS EN MAIN 76 scripts efficaces pour enrichir vos sites web par William Steinmetz et Brian Ward TABLE DES MATIÈRES INTRODUCTION 1 1 TOUT CE QUE VOUS AVEZ TOUJOURS VOULU SAVOIR SUR LES SCRIPTS PHP

Plus en détail

Ch4 Interconnexion des postes dans un Lan Ethernet : protocoles des couches 3 à 7 du modèle OSI Dernière maj : lundi 2 avril 2007

Ch4 Interconnexion des postes dans un Lan Ethernet : protocoles des couches 3 à 7 du modèle OSI Dernière maj : lundi 2 avril 2007 Ch4 Interconnexion des postes dans un Lan Ethernet : protocoles des couches 3 à 7 du modèle OSI Dernière maj : lundi 2 avril 2007 I. RAPPEL : ADRESSAGE PHYSIQUE : (OSI 2)... 1 A. L ADRESSAGE DANS UN RESEAU

Plus en détail

Programmation VBA. Identificateurs. Types de base. Déclaration d une variable. Commentaires. Activer l onglet Développeur (Excel)

Programmation VBA. Identificateurs. Types de base. Déclaration d une variable. Commentaires. Activer l onglet Développeur (Excel) Activer l onglet Développeur (Excel) Programmation VBA Michel Reid Cliquez sur le bouton Office (coin supérieur gauche) Cliquez sur le bouton Options Excel Dans la section Standard, cochez la case Afficher

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

Pages Web statiques. LIF4 - Initiation aux Bases de données : PHP. Pages Web dynamiques. Illustration. Illustration

Pages Web statiques. LIF4 - Initiation aux Bases de données : PHP. Pages Web dynamiques. Illustration. Illustration statiques LIF4 - Initiation aux Bases de données : E.Coquery emmanuel.coquery@liris.cnrs.fr http ://liris.cnrs.fr/ ecoquery Principe de fonctionnement : L utilisateur demande l accès à une page Web depuis

Plus en détail

Application de lecture de carte SESAM-Vitale Jeebop

Application de lecture de carte SESAM-Vitale Jeebop Application de lecture de carte SESAM-Vitale Jeebop Présentation Le module de lecture de carte SESAM-Vitale Jeebop est une application Java Web Start, c'est à dire une application Java qui se télécharge

Plus en détail

Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A. TP sur IP

Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A. TP sur IP Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A TP sur IP L'objectif de ce premier TP est de vous montrer comment les données circulent dans un réseau, comment elles

Plus en détail

P a g e 1. Guide d installation Web Console v1.0. Copyright 2013 ISYS Inside-System. Tous droits réservés.

P a g e 1. Guide d installation Web Console v1.0. Copyright 2013 ISYS Inside-System. Tous droits réservés. P a g e 1 Guide d installation Web Console v1.0 Copyright 2013 ISYS Inside-System. Tous droits réservés. Si le présent manuel est fourni avec un logiciel régi par un contrat d utilisateur final, ce manuel,

Plus en détail

Les fondamentaux du langage Perl 5 Apprentissage par la pratique (Nouvelle édition)

Les fondamentaux du langage Perl 5 Apprentissage par la pratique (Nouvelle édition) Démarrer avec Perl 1. Caractéristiques du langage Perl 13 1.1 Les domaines d'utilisation de Perl 15 1.2 Perl 5 16 1.3 Perl 6 16 2. Mise en œuvre de Perl 17 2.1 Unix/Linux 17 2.1.1 Installation de Perl

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

Génération & Intégration Des certificats SSL Dans Apache & IIS

Génération & Intégration Des certificats SSL Dans Apache & IIS Génération & Intégration Des certificats SSL Dans Apache & IIS Classification : Non sensible public 2/11 Table des matières 1 Obtention d un certificat SSL... 4 2 Installation dans Apache/Linux... 5 2.1

Plus en détail

Programmation Avancée pour le Web

Programmation Avancée pour le Web L3 Informatique Option : ISIL Programmation Avancée pour le Web RAMDANI Med U Bouira 1 Contenu du module Introduction aux applications Web Rappels sur les sites Web Conception d une application Web Notion

Plus en détail