IRT Programmation côté serveur

Save this PDF as:
 WORD  PNG  TXT  JPG

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

Download "IRT 2009-2010 Programmation côté serveur"

Transcription

1 UPMC IRT c by C.Queinnec 1/77 Revision: 1.24 IRT Programmation côté serveur C.Queinnec

2 UPMC IRT c by C.Queinnec 2/77 Plan Cours 1 et 2 : HTTP, CGI Cours 3, 4 et 5 : Symfony

3 UPMC IRT c by C.Queinnec 3/77 HTML (rappels) RAPPELS D HTML Langage de mise en page (ou plutôt en écran) de textes avec (un peu) structuration de données (cf. XML) langage parenthésé à balises balises spécialisées pour interactions côté client Note : HTML 2, 3, 4, XHTML etc.

4 UPMC IRT c by C.Queinnec 4/77 Formulaires RAPPELS D HTML Des balises existent mettant en place des «widgets» de saisie d information au sein d un (ou plusieurs) formulaire(s) (pour form) : champ de texte (sur une ou plusieurs lignes), champ sans écho (pour mot de passe), boutons radio, case à cocher, menu, bouton d envoi de fichier, bouton caché, boutons d envoi, de ré-initialisation.

5 UPMC IRT c by C.Queinnec 5/77 RAPPELS D HTML Syntaxe d un formulaire par l exemple <form name= nom du formulaire method= GET ou POST enctype= application/x-www-form-urlencoded ou multipart/form-data action= url > Votre nom: <input type= textfield name= t1 value= votre nom size=20 maxlength=30> Votre <strong>raison</strong> de vivre: <textarea name= t2 rows=4 cols=40> ecrire ici </textarea> Votre mot de passe: <input type= password name= t3 size=10> Votre sexe: Homme:<input type= radio name= t4 value= male checked> Femme:<input type= radio name= t4 value= femelle > Votre etat: fatigue: <input type= checkbox name= t5 value= fatigue > serein: <input type= checkbox name= t6 value= serein > <input type= file name= t7 size=50 maxlength=80> <select name= t8 ><option><em>a</em> <option selected>b</select> <input type= hidden name= t9 value=des caracteres > <input type= submit name= doit value= Envoyer > <input type= reset value= Re-initialiser > </form>

6 RAPPELS D HTML UPMC IRT c by C.Queinnec 6/77

7 UPMC IRT c by C.Queinnec 7/77 RAPPELS D HTML Caractéristiques communes Tous les widgets demandant de l information ont un nom, ils peuvent avoir une valeur par défaut, ainsi que quelques paramètres pour fignoler leur apparence. La syntaxe n est pas très uniforme (notamment les balises textarea et select).

8 UPMC IRT c by C.Queinnec 8/77 Ce qui se passe RAPPELS D HTML 1 Quand un navigateur reçoit un formulaire, il interprète le source HTML et affiche le texte et les widgets. 2 Il joue ensuite le rôle d un éditeur de texte pour les widgets de texte (balises textfield ou textarea ou password) (en Netscape, Mozilla c est un petit Emacs). 3 Il s occupe également des coches, des choix dans les menus déroulants etc. 4 En local, il sait remettre le formulaire dans son état initial (avec le bouton de ré-initialisation). 5 Enfin, quand le bouton d envoi est pressé, il sait envoyer les informations recueillies. Le serveur n est donc pas sollicité pendant toute la durée où l utilisateur remplit le formulaire.

9 UPMC IRT c by C.Queinnec 9/77 Messages HTTP HTTP start line CR LF name:value CR LF autant que de parametres HTTP CR LF message body Pour les requêtes, la première ligne est : method SP uri SP HTTP/1.version La méthode peut être : GET ou HEAD (obligatoirement implantées par le serveur) ou encore OPTIONS, POST, PUT, DELETE, TRACE, CONNECT ou encore autre chose. Le second champ peut être une URL complète ou juste un chemin d accès (dans ce dernier cas, le paramètre HTTP Host est recommandé).

10 UPMC IRT c by C.Queinnec 10/77 HTTP Pour les réponses, la première ligne est : HTTP/1.version SP code SP paraphrase Le code s exprime en 3 chiffres et est humainement lisible juste après. 1xx en cours de traitement 2xx succès 3xx redirection 4xx erreur client 5xx erreur serveur

11 UPMC IRT c by C.Queinnec 11/77 Paramètres HTTP HTTP Le nom du paramètre n est pas sensible à la casse. Il peut y avoir des blancs superflus juste après le : et avant le CR LF. L ordre des paramètres n est pas important mais le plus souvent du plus général au plus particulier. Il est possible de donner plusieurs fois un même paramètre (ordre signifiant donc). Foo: a Bar: c Foo: b Foo: a, b Bar: c

12 UPMC IRT c by C.Queinnec 12/77 HTTP Classification des paramètres décrivant des généralités Date : décrivant la connexion Connection : Max-Forwards : (et méthode OPTIONS) décrivant le serveur (ou le client) Accept : Accept-Charset : Accept-Encoding : Accept-Language : User-Agent : Server : décrivant le message (la requête ou la réponse) Transfer-Encoding : From : Host : If-Modified-Since : Retry-After : Referer : décrivant une ressource dans le message Content-Type : Location : Age : ETag : If-None-Match : Allow : Content-Encoding : Content-Length : Content-MD5 : Content-Language : Expires : Last-Modified : suggérant des règles de transmission Pragma : Cache-Control :

13 UPMC IRT c by C.Queinnec 13/77 HTTP Entité dans corps de message Le type MIME (pour Multipurpose Internet Mail Extensions) classifie les sortes d entité. Originellement fait pour passer des fichiers par courrier électronique (7bits, 100K). Syntaxiquement : catégorie/nature text/plain text/html text/rtf image/gif image/png audio/ video/ application/postscript application/x-dvi application/rtf application/vnd.ms-excel

14 UPMC IRT c by C.Queinnec 14/77 HTTP Ce type est utilisé dans le paramètre HTTP Content-Type et peut être accompagné d options comme : Content-Type: text/html; charset=iso Fichier.mime.types pour associer des applications (ou actions) à ces types. Cf. aussi KDE, Gnome, etc.

15 UPMC IRT c by C.Queinnec 15/77 Méthodes HTTP Les méthodes GET ou HEAD (obligatoirement implantées par le serveur) doivent être idempotentes c est-à-dire sans effet de bord. Les méthodes POST, PUT, DELETE ne sont pas idempotentes. L uri de POST indique le processus qui traitera la requête, l uri de PUT désigne le nom de la ressource à créer. La méthode TRACE permet d inspecter la connexion à la manière d un ping ou d un traceroute. Remarque : pas de DIR en HTTP!

16 UPMC IRT c by C.Queinnec 16/77 Quelques exemples HTTP GET / HTTP/1.0 GET HTTP/1.0 If-Modified-Since: Sun, 06 Nov :49:37 GMT

17 UPMC IRT c by C.Queinnec 17/77 HTTP GET /licence/2001/licence/public/module.php?id=6 HTT Accept-Language: fr, en Pragma: no-cache Accept: image/gif, image/x-xbitmap, image/jpeg, imag Accept-Charset: iso ,*,utf-8 Host: Accept-Encoding: gzip User-Agent: Mozilla/4.78 [en] (X11; U; Linux Proxy-Connection: Keep-Alive If-Modified-Since: Mon, 31 Dec :14:29 GMT; le Referer:

18 UPMC IRT c by C.Queinnec 18/77 HTTP Envoi des informations au serveur Les informations recueillies (coches, choix, textes, fichiers) sont conditionnées pour être envoyées au serveur (spécifié par l URL de l attribut action de la balise form). Attention, souvent les navigateurs n envoient de l information que si elle a été saisie ou modifiée. L encodage par défaut est application/x-www-form-urlencoded. Les valeurs sont conditionnées sous la forme d une chaîne (avec les conventions d encodage propres aux URL (+, %xy, &) : nom=valeur&nom=valeur&nom=valeur

19 HTTP UPMC IRT c by C.Queinnec 19/77

20 HTTP UPMC IRT c by C.Queinnec 20/77

21 UPMC IRT c by C.Queinnec 21/77 HTTP Cette chaîne peut être envoyée à l URL sous la forme d une requête HTTP de type GET : GET url?nom=valeur&nom=valeur&nom=valeur...autres parametres de requete ou de type POST : POST url Content-Type: application/x-www-form-urlencoded Content-Length: 32...autres parametres de requete nom=valeur&nom=valeur&nom=valeur

22 UPMC IRT c by C.Queinnec 22/77 HTTP Enfin existe encore l encodage multipart/form-data POST url Content-Type: multipart/form-data; boundary=0xkhtmlboundary...autres parametres de requete --0xKhTmLbOuNdArY Content-Disposition: form-data; name="n" Moi --0xKhTmLbOuNdArY Content-Disposition: form-data; name="do" Envoyer --0xKhTmLbOuNdArY--

23 UPMC IRT c by C.Queinnec 23/77 HTTP Les transports de type POST sont les plus sûrs (parce qu ils sont insensibles à la taille des données (ce qui n est pas le cas de GET) et permettent de spécifier l alphabet utilisé (pour les lettres accentuées)), l encodage multipart/form-data sait envoyer des fichiers ce que ne sait pas faire application/x-www-form-urlencoded mais impose le recours à une bibliothèque pour l extraction des paramètres.

24 Côté serveur HTTP Le serveur doit pouvoir fournir à une application les couples nom-valeur quelque soit l encodage et le conditionnement (type MIME) Directive Status: 200 super! pour indiquer le code. UPMC IRT c by C.Queinnec 24/77

25 UPMC IRT c by C.Queinnec 25/77 Pages dynamiques HTTP L interprétation de l URL est à la discrétion du serveur. La décoder suivant le système de fichiers du serveur est une option simple mais ce n est pas la seule. On peut synthétiser la réponse et ainsi avoir des pages dynamiques. Un jeu de convention pour transporter des paramètres (ou des fichiers) et lancer, côté serveur, les traitements appropriés. Limitation de la taille d une URL, visibilité des paramètres, non idempotence des requêtes GET.

26 HTTP UPMC IRT c by C.Queinnec 26/77

27 UPMC IRT c by C.Queinnec 27/77 Informations HTTP La requête comporte de nombreux points où passer de l information : l URI, la chaîne des paramètres de requête (ou query-string), les paramètres HTTP, le corps du message.

28 UPMC IRT c by C.Queinnec 28/77 HTTP Toute bibliothèque raisonnable permet d obtenir toutes ces informations : l uri (ou ses divers constituants (protocole, hôte, port, chemin (chemin telquel, inteprété par rapport au système de fichiers), les paramètres de requête (tous (en table de hachage) ou un par un) les paramètres HTTP (tous ou un par un) le corps du message (comme un flux ou si c est une requête POST, comme une suite de paramètres de requête (tous ou un par un) Attention, pour tous les paramètres de tout type, un nom mène à une suite (ordonnée) de valeurs (des chaînes) (souvent une seule mais pas toujours). Certains paramètres HTTP influencent le décodage des autres parties du message.

29 UPMC IRT c by C.Queinnec 29/77 HTTP les grandes étapes d un serveur 1 décodage url (de la gauche vers la droite) 2 décodage de la chaîne de requête et des paramètres http 3 recherche fichier/programme droits d accès, réécriture, paramétrage, 4 détermination type mime du résultat suffixe du fichier, règles locales (.htaccess) analyse du début de la réponse 5 génération du corps de la réponse 6 en HTTP/1.0, fermeture de la connexion

30 Codes d HTTP HTTP 200 OK 201 Created (+ Location pour URI canonique) 202 Accepted (+ Location pour URI de contrôle) 204 No Content (la représentation est vide) 301 Moved Permanently (+ Location) 303 See Other (+ Location pour le contenu de la réponse) 304 Not Modified 307 Temporary Redirect (+ Location pour re-soumettre la requête) 400 Bad Request 404 Not Found 405 Method Not Allowed 406 Not Acceptable (pas de représentation acceptable) 409 Conflict 410 Gone 415 Unsupported Media Type 500 Internal Server Error 503 Service Unavailable UPMC IRT c by C.Queinnec 30/77

31 UPMC IRT c by C.Queinnec 31/77 Interface CGI INTERFACE CGI Lancer des programmes extérieurs en leur donnant les informations de la requête cf. standard Les premières lignes sont analysées et rendues sous la forme de variables d environnement : SERVER_SOFTWARE SERVER_NAME GATEWAY_INTERFACE SERVER_PROTOCOL SERVER_PORT REQUEST_METHOD PATH_INFO PATH_TRANSLATED SCRIPT_NAME QUERY_STRING REMOTE_HOST REMOTE_ADDR CONTENT_TYPE CONTENT_LENGTH

32 UPMC IRT c by C.Queinnec 32/77 INTERFACE CGI Les paramètres HTTP sont analysés et rendus sous forme de variables d environnement préfixés par HTTP_. HTTP_ACCEPT HTTP_USER_AGENT Le corps du message est fourni dans le flux d entrée standard du programme. La longueur de ce flux se trouve dans la variable CONTENT_LENGTH, sa nature dans CONTENT_TYPE. Le serveur analyse la sortie standard du programme. Les première lignes doivent être des paramètres HTTP (au minimum Content-Type) éventuellement précédé du code HTTP de retour (sinon il sera positionné à 200 si tout se passe bien par le serveur) puis une ligne vide puis le corps du message.

33 UPMC IRT c by C.Queinnec 33/77 Exemples de CGI INTERFACE CGI Rendre la date : #! /bin/sh echo Content-Type: text/plain echo date Autre exemple de script CGI, aussi en shell : #! /usr/bin/tail +1 Content-Type: text/html <html><head><title>page statique</title></head> <body>ceci est une page statique.</body></html>

34 UPMC IRT c by C.Queinnec 34/77 INTERFACE CGI Pour voir ce que l interface CGI a placé dans l environnement : #! /bin/sh echo Content-Type: text/html echo echo <html><head><title>environnement CGI</title> echo </head><body><pre> printenv echo </pre></body></html> CGI est lent mais simple! Voir aussi FastCGI. Principal langage pour CGI : Perl (mais mod_perl)

35 UPMC IRT c by C.Queinnec 35/77 ÉTAT CÔTÉ SERVEUR Maintenir un état côté serveur HTTP est un protocole sans état. Pour maintenir un état il faut être capable de déterminer si deux requêtes viennent du même utilisateur. bouton caché cookie réécriture d URL session SSL

36 UPMC IRT c by C.Queinnec 36/77 Bouton caché ÉTAT CÔTÉ SERVEUR Si la réponse du serveur est un formulaire : < reponse serveur <form...> <input type= hidden name= n value= v > </form> > nouvelle requete client n=v Problèmes : ne fonctionne que pour les formulaires modifiable par l utilisateur

37 UPMC IRT c by C.Queinnec 37/77 Cookies ÉTAT CÔTÉ SERVEUR But : tracer les utilisateurs en stockant de l information dans le client. < OK Set-Cookie: NGUserID=3e17099b ; expires=wednesday, 30-Dec :00:00 GMT; path=/; domain=.hi-media.com > GET Cookie: NGUserID=3e17099b Limitation en taille et nombre (20 cookies de 4Ko). Attention à la comparaison de noms d hôtes. Sans date de péremption, un cookie meurt quand on quitte son navigateur.

38 UPMC IRT c by C.Queinnec 38/77 ÉTAT CÔTÉ SERVEUR Documentation simple sur cookie Pour des cookies plus modernes : < OK Set-Cookie: NGUserID=3e170; Max-Age=300; Path=/; Domain=.hi-media.com; secure; Comment="Le cookie moderne!"; Version= > GET Cookie: $Version="1"; NGUserID=3e170; other=42 RFC nouveau cookie Principe : ne jamais faire confiance à l information venant du client!

39 UPMC IRT c by C.Queinnec 39/77 Cookie en PHP ÉTAT CÔTÉ SERVEUR setcookie( nom, valeur,...); $_COOKIE[ nom ] // cookies recus

40 UPMC IRT c by C.Queinnec 40/77 Réécriture d URL ÉTAT CÔTÉ SERVEUR < reponse serveur href= < transforme en href= href= href= href= href=

41 UPMC IRT c by C.Queinnec 41/77 ÉTAT CÔTÉ SERVEUR Réécriture d URL (problèmes) toutes les pages sont dynamiques puisque toutes les urls doivent être réécrites. nécessité de coopération entre toutes les pages pour adopter un schéma commun d encodage l information est modifiable par l utilisateur

42 UPMC IRT c by C.Queinnec 42/77 Autres techniques ÉTAT CÔTÉ SERVEUR Nouveau, pour traquer le client : utilisation des champs HTTP Last-Modified ou ETags. Cookies croisés

43 UPMC IRT c by C.Queinnec 43/77 Authentification ÉTAT CÔTÉ SERVEUR Accès à une zone protégée : > GET url < unauthorized WWW-Authenticate: Basic realm="secret P6" > GET url Authorization: Basic base64("user :password") < page (en clair) > GET url/sousurl Authorization: Basic base64("user :password") < page (en clair)

44 UPMC IRT c by C.Queinnec 44/77 ÉTAT CÔTÉ SERVEUR liberté du client pour la demande de nom/mot de passe. liberté du serveur de la vérification nom/mot de passe (fichier, base n?dbm, base de données, etc.) Pas de déconnexion prévue. Autre méthode : Digest (avec défi ou nonce).

45 UPMC IRT c by C.Queinnec 45/77 HTTPS ÉTAT CÔTÉ SERVEUR Forcer l usager à utiliser une communication cryptée (SSL, TLS) par le protocole HTTPS. Comment est négocié un canal crypté non observable (il y a des variantes) :

46 UPMC IRT c by C.Queinnec 46/77 ÉTAT CÔTÉ SERVEUR ClientHello > < ServerHello < Certificat < ServerKeyExchange? < CertificateRequest? < ServerHelloDone Certificate? > ClientKeyExchange > ChangeCypherSpec > Finished -----chiffre > < ChangeCypherSpec <---chiffre Finished Sur le canal crypté passe de multiples requêtes (en HTTP/1.1). Tant que le canal reste ouvert, l interlocuteur n a pas changé. Enfin on peut utiliser de l authentification via HTTPS.

47 UPMC IRT c by C.Queinnec 47/77 Session ÉTAT CÔTÉ SERVEUR Demander au conteneur de gérer lui-même, par tous les moyens à sa disposition, le suivi des usagers. session_start(); $_SESSION[ cle ] = valeur ; //Changement d identifiant de session session_regenerate_id(); session_destroy(); unset($_session); L objet session est une table associative permettant d insérer des attributs.

48 UPMC IRT c by C.Queinnec 48/77 Redirection ÉTAT CÔTÉ SERVEUR Parmi les codes de retour 3xx : 301 Moved permanently ou 302 Found permettent les redirections permanentes ou temporaires > GET url < Moved permanently Location: nouvelle-url > GET nouvelle-url < page

49 UPMC IRT c by C.Queinnec 49/77 ÉTAT CÔTÉ SERVEUR Authentification côté client > GET dom/url < Moved temporarily Location: authurl?oldurl=dom/url > GET authurl?oldurl=dom/url < formulaire a remplir > POST checkurl et information oldurl=dom/url < Moved temporarily Location: dom/url Set-Cookie: Clef=912436tal; Domain=dom; Path=url > GET dom/url Cookie: Clef=912436tal

50 UPMC IRT c by C.Queinnec 50/77 SSO (single sign on) ÉTAT CÔTÉ SERVEUR CAS, OpenId 307 CAS,OpenID auth form 307+cookie checkcookie getprofileinfo

51 UPMC IRT c by C.Queinnec 51/77 Cache (un peu) ÉTAT CÔTÉ SERVEUR Champ HTTP Expires et mécanisme de validation > GET dom/url < OK Date: Last-Modified: Expires: Cache-Control: maxage= ETag: opaque +user tracking > GET dom/url If-Modified-Since: If-None-Match: opaque < Not modified

52 UPMC IRT c by C.Queinnec 52/77 ÉTAT CÔTÉ SERVEUR > PUT dom/url par exemple If-Match: opaque < Precondition failed Et inversement pour ne rien retenir : > GET dom/url < OK Pragma: no-cache en http 1.0 Cache-Control: no-cache en http 1.1 maintenant Cache-Control: no-store en http 1.1 maintenant

53 UPMC IRT c by C.Queinnec 53/77 Conclusions ÉTAT CÔTÉ SERVEUR Ne jamais faire confiance à l information provenant de l utilisateur. C est le premier commandement de l Open Web Application Security Project Utiliser une information de session correspondant à une clé d indexation en base côté serveur. Utiliser des clés non forgeables. Changer souvent de clés (datées). Invalider les anciennes clés.

54 GÉNÉRATION D HTML UPMC IRT c by C.Queinnec 54/77

55 UPMC IRT c by C.Queinnec 55/77 GÉNÉRATION D HTML Comment engendrer de l HTML? Écrire un programme (dans le langage X) qui engendre de l HTML revient à mélanger des chaînes HTML statiques avec quelques parties calculées par des expressions du langage X. En Perl, par exemple, print "<p>bonjour "; print $prenom, " ", $nom; print ",</p> <div> Comment allez-vous? <br>... ";

56 UPMC IRT c by C.Queinnec 56/77 GÉNÉRATION D HTML Le même en C : int main () { printf("<p>bonjour %s %s,</p>\n" "<div> Comment allez-vous? <br>\n" "... ", prenom, nom); }

57 UPMC IRT c by C.Queinnec 57/77 GÉNÉRATION D HTML ou encore en PHP : <p>bonjour <?php echo $prenom?>, <?php echo $nom?> <div> Comment allez-vous? <br>... ou en Perl encore mais en utilisant la bibliothèque CGI : print p("bonjour $prenom $nom,"), "<div> "; = ["comment", "allez", "vous"]; print join(" "?", br, "..."; S il y a peu de parties variantes, si le langage a des chaînes sur une seule ligne, des expressions d impression verbeuses, le code devient vite illisible.

58 UPMC IRT c by C.Queinnec 58/77 Métissage GÉNÉRATION D HTML L idée (éculée) : écrire dans le langage majoritaire et inclure des îlots dans un autre langage. C et cpp (pour les macros) notation backquote en Lisp/Scheme programmation littéraire (Pascal + T E X) Java et javadoc (ou icontract) : commentaires structurés X et SQL (par exemple, jsql = Java + SQL)...

59 UPMC IRT c by C.Queinnec 59/77 Métissage avec HTML GÉNÉRATION D HTML Ici le mélange qui nous intéresse est entre HTML et un langage de programmation. Concrètement, on souhaite écrire quelque chose comme : <html><head><title> Langage metis </title> </head><body> Bonjour!INSERER ICI LE NOM EVENTUELLEMENT CALCULE!, Comment allez-vous <br>...

60 UPMC IRT c by C.Queinnec 60/77 Buts du métissage GÉNÉRATION D HTML diminuer la distance entre l intention et le code séparer la présentation HTML (graphiste) des parties programmatiques (développeur) utiliser des outils différents pour des tâches différentes (Éditeur de texte ou outil de dessin graphique)

61 UPMC IRT c by C.Queinnec 61/77 GÉNÉRATION D HTML Exemples de métissage avec HTML JSP = HTML et Java (Java Server Page) mais aussi WebMacro, Cocoon, Struts,... taglib Perl + HTML : Embperl, Mason, Apache : :ASP, HTML : :Template, Template Toolkit PHP = HTML et une sorte de Perl (Personal Home Page) Shervlet = HTML + sh

62 UPMC IRT c by C.Queinnec 62/77 GÉNÉRATION D HTML Techniques de métissage interprétation (PHP) compilation (JSP, Shervlet) et aussi tous les intermédiaires compilation à la volée compilation paresseuse pré-compilation compilation vers du code-octet puis interprétation Une technique simple passe par un compilateur traduisant le langage X+HTML en X. Par exemple, une JSP est compilée en une servlet (une classe Java). Sans oublier les problèmes de performance : patron, cache de compilation, cache de résultats.

63 UPMC IRT c by C.Queinnec 63/77 Shervlet = sh+html GÉNÉRATION D HTML <html><head><title> shervlet </title></head><body> Il est <?sh date?> en ce moment<br> dit <?sh uname -a?></body></html> Mais aussi des constructions avec des enchevêtrements plus complexes comme alternative ou itération : <html><head><title> shervlet </title></head><body> <?sh if [ "$REMOTE_HOST" = ] ; then?> Salut vieille branche, <?sh ;else?> Bonjour, <?sh fi?> </body></html>

64 UPMC IRT c by C.Queinnec 64/77 Compilation de sh+html GÉNÉRATION D HTML <html><head><title> shervlet </title></head><body> Il est <?sh date?> en ce moment<br> dit <?sh uname -a?></body></html> se compile en #! /bin/sh echo -n "<html><head><title> shervlet </title></h Il est " date echo -n " en ce moment<br> dit " uname -a echo -n "</body></html> "

65 UPMC IRT c by C.Queinnec 65/77 GÉNÉRATION D HTML Automate (un peu simplifié) de compilation (cf. compilateur)

66 UPMC IRT c by C.Queinnec 66/77 GÉNÉRATION D HTML Langages plus compliqués L insertion est plus complexe dans un langage qui distingue instructions, expressions et déclarations (sans oublier les directives de compilation). En Java, par exemple, les JSP distinguent différents types d îlots. directive %> <%! declaration %> <% instruction; %> <%= expression %> Meme chose que <% out.print(expression); %>

67 UPMC IRT c by C.Queinnec 67/77 Caractères JEUX DE CARACTÈRES Jeux de caractères : ASCII (7bits), latin1 = ISO , latin9 = ISO , Unicode et ISO/IEC En Unicode, tous les caractères ont un nom canonique comme «U+03BC GREEK SMALL LETTER MU» et un numéro (20 à 22 bits suffisent). Les jeux de caractères n ont rien à voir avec les langues (grec, cyrillique, français de France ou du Québec) codés comme fr_fr, fr_ca ou GR. En jargon, locale régissant, nombres, argent, date, ordre alphabétique, etc. (cf. variables LC_DATE, LC_ALL, etc.)

68 UPMC IRT c by C.Queinnec 68/77 Glyphes JEUX DE CARACTÈRES Unicode n est pas concerné par les descriptions graphiques qui se nomment des glyphes. 2673: RECYCLING SYMBOL FOR TYPE-1 PLASTICS polyethylene terephthalate 2674: RECYCLING SYMBOL FOR TYPE-2 PLASTICS high density polyethylene

69 UPMC IRT c by C.Queinnec 69/77 JEUX DE CARACTÈRES Relations entre caractères Certains caractères ont des rapport entre eux : appartenance à un alphabet national correspondance minuscule/majuscule reconnaissance chiffre/lettre/ponctuation ordre des caractères ordre contigü pour les chiffres composition de caractères (comme «U+00E0 LATIN SMALL LETTER A WITH GRAVE» est composé de «U+0061 LATIN SMALL LETTER A» et «U+0300 COMBINING GRAVE ACCENT») équivalence de symboles (Ohm et Oméga) règles de césure

70 UPMC IRT c by C.Queinnec 70/77 Codages JEUX DE CARACTÈRES UCS-2 : chaque caractère unicode est codé en deux octets. Les bigrammes sont réservés (et notamment FEFF pour lutter contre les représentations gros- ou petit-boutiennes). Java (et d autres) est par défaut en ISO mais \uxyzt désigne un caractère unicode. UTF-8 (même style de schéma pour UTF-16) : 0abcdefg 110abcde 10fghijk 1110abcd 10efghij 10klmnop Ainsi -> abcdefg -> abcdefghijk -> abcdefghijklmnop A é e

71 UPMC IRT c by C.Queinnec 71/77 Codage ISO JEUX DE CARACTÈRES ISO est un jeu de 256 caractères pour l Europe de l ouest, ISO pour l Europe de l est, etc.

72 UPMC IRT c by C.Queinnec 72/77 Codage ISO JEUX DE CARACTÈRES L ISO est aussi connu sous le nom de «Latin9» (ou encore «Latin0»). C est celui qu il faut utiliser de préférence à l ISO (dit «Latin1»).

73 UPMC IRT c by C.Queinnec 73/77 Le grand jeu JEUX DE CARACTÈRES 1 octets (un (ou plusieurs) octet(s) pour un caractère) 2 caractères (une abstraction en mémoire de l application) 3 glyphes (suivant polices) octets UTF8 quoted printable échappement \uxyzt octets +plan ISO 8859 x Unicode polices glyphes glyphes

74 UPMC IRT c by C.Queinnec 74/77 Comment le dire? JEUX DE CARACTÈRES En Emacs, première ligne -*- coding : utf-8 -*- En Unix : luit : conversion de/vers UTF-8 En XML, attribut encoding <?xml version="1.0" encoding="is " standalone="no"?> en HTTP : Content-Type: text/html; charset=utf-8

75 UPMC IRT c by C.Queinnec 75/77 Principes sécuritaires SÉCURITÉ D après Open Web Application Security Project : Minimiser la surface attaquable Choix sûrs par défaut Moindre privilège Défense en profondeur Rattrapage d erreur sûr Séparation des rôles Pas de sécurité par obscurité Simplicité Automatisation des tests de correction de vulnérabilité

76 UPMC IRT c by C.Queinnec 76/77 Attaques (nombreuses) SÉCURITÉ sql injection exemple (surtout en PHP) : select * from T where nom = $info avec info= or true or = ne jamais faire confiance aux informations provenant des utilisateurs filtrer (black, white lists) select * from T where nom =? langages teintés (Perl) xss (Cross Site Scripting) 1 X injecte du javascript J dans un texte stocké côté serveur S 2 A reçoit de S le texte et exécute le javascript J 3 J peut engendrer une requête vers un site S qui sera émise avec les cookies de A 4 J peut renvoyer à X les résultats obtenus

77 UPMC IRT c by C.Queinnec 77/77 Tests TESTS De multiples points de tests : Selenium IDE LWP, HttpUnit Findbugs,JDepend,PMD Perl:Critic,Test::More Cactus junit cohérence Contrôle JS GreaseMonkey Firebug tests de charge tests de sécurité Vue Modèle Cactus

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

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

Introduction à PHP. Formulaires HTML et PHP, interactions avec le client. monnerat@u-pec.fr. 6 avril 2015. IUT de Fontainebleau. Introduction à PHP

Introduction à PHP. Formulaires HTML et PHP, interactions avec le client. monnerat@u-pec.fr. 6 avril 2015. IUT de Fontainebleau. Introduction à PHP Formulaires HTML et PHP, interactions avec le client IUT de Fontainebleau 6 avril 2015 1 Formlaire et traitement 2 Texte Cases à cocher Listes Upload de fichiers Sommaire Formlaire et traitement 1 Formlaire

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

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

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

NFA016 : Les formulaires. Les formulaires. Les formulaires (exemple)

NFA016 : Les formulaires. Les formulaires. Les formulaires (exemple) O. Pons, S. Rosmorduc Conservatoire National des Arts & Métiers Les balises: NFA016 : Les formulaires Les formulaires form : début de formulaire input : différents types de bouton et zone de saisie textarea

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

Développement Partie Cliente

Développement Partie Cliente ISI 1022 : Jean-Noël Sorenti. Année 2002/2003 Développement Partie Cliente ISI 1022 : 1 ISI 1022 : Développement Partie Cliente Le développement partie cliente concerne tout développement étant interprété

Plus en détail

Conception de sites Web TP n o 5

Conception de sites Web TP n o 5 Conception de sites Web TP n o 5 Objectif : Dans ce TP, vous mettrez en œuvre le langage PHP afin de gérer, entre autres, un compteur de visites, le formulaire que vous avez intégré à votre blog ainsi

Plus en détail

Échange et mise à jourde documents XML via le Web p.1/46

Échange et mise à jourde documents XML via le Web p.1/46 Échange et mise à jour de documents XML via le Web Échange et mise à jourde documents XML via le Web p.1/46 CGI : Common Gateway Interface Principe : on déclenche une action (un programme) sur la machine

Plus en détail

Programmation Web. Thierry Hamon

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

Plus en détail

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

Web et présentation d information spatiale

Web et présentation d information spatiale Université de La Rochelle LUP-SIG 2004-2005 Programmation SIG et Internet Cartographique Web et présentation d information spatiale Moteurs de recherche et formulaires HTML Jean-Michel FOLLIN jmfollin@univ-lr.fr

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

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

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

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

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

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

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

(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

Plan. Ressources. Architecture des Applications Réticulaires. Ressources. Exemple : Amazon S3. Id : cours3.bk 47 2008-03-01 16 :08 :37Z queinnec

Plan. Ressources. Architecture des Applications Réticulaires. Ressources. Exemple : Amazon S3. Id : cours3.bk 47 2008-03-01 16 :08 :37Z queinnec UPMC NI584-2008fev c C.Queinnec 3/19 UPMC NI584-2008fev c C.Queinnec 4/19 Plan Architecture des Applications Réticulaires Id : cours3.bk 47 2008-03-01 16 :08 :37Z queinnec Christian Queinnec Université

Plus en détail

Bases de données et Sites Web. Li345

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

Plus en détail

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

Journées pédagogiques de l'ifsic - ENSSAT (Lannion) - 17 juin 2003. Journées pédagogiques de l'ifsic - ENSSAT (Lannion) - 17 juin 2003

Journées pédagogiques de l'ifsic - ENSSAT (Lannion) - 17 juin 2003. Journées pédagogiques de l'ifsic - ENSSAT (Lannion) - 17 juin 2003 Exemple de transaction HTTP Délivrer un document statique % telnet www.ifsic.univ-rennes1.fr 80......................connexion au serveur web Trying 148.60.4.30 Connected to apollon.univ-rennes1.fr. Escape

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

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

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

Eléments du langage. Eléments du langage PHP. Variables. Variables

Eléments du langage. Eléments du langage PHP. Variables. Variables Eléments du langage Eléments du langage PHP Séparation des instructions Comme en C, C++, Perl, les instructions doivent être séparées par un point virgule. Les commentaires // Ceci est un commentaire sur

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

CSI 3540. Structures, techniques et normes du Web

CSI 3540. Structures, techniques et normes du Web CSI 3540 Structures, techniques et normes du Web Assises du Web (Partie 2) Objectifs: Maîtrise des concepts sur lesquels reposent les technologies du Web, incluant HTTP Bien comprendre les interactions

Plus en détail

TD2 : PHP «avancé» V3.0.0

TD2 : PHP «avancé» V3.0.0 TD2 : «avancé» V3.0.0 Cette œuvre est mise à disposition selon les termes de la licence Creative Commons Attribution Pas d'utilisation Commerciale Partage à l'identique 3.0 non transposé. Document en ligne

Plus en détail

3. Formulaires. Cours Web. Formulaires. 3. Formulaires. 3. Formulaires. Formulaires. Lionel Seinturier. Université Pierre & Marie Curie

3. Formulaires. Cours Web. Formulaires. 3. Formulaires. 3. Formulaires. Formulaires. Lionel Seinturier. Université Pierre & Marie Curie Cours Web Formulaires Lionel Seinturier Université Pierre & Marie Curie Lionel.Seinturier@lip6.fr 8/9/03 Formulaires HTML 1.0 essentiellement "mono"-directionnel informations fournies par le serveur (suite

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

LES FORMULAIRES. Elisabeth Pecatte elisabeth.pecatte@iut-tlse3.fr

LES FORMULAIRES. Elisabeth Pecatte elisabeth.pecatte@iut-tlse3.fr LES FORMULAIRES Elisabeth Pecatte elisabeth.pecatte@iut-tlse3.fr LES FORMULAIRES Permet de récupérer les informations saisies par l'internaute sur votre site Nécessite un traitement des données : php mail

Plus en détail

INF8007 Langages de script

INF8007 Langages de script INF8007 Langages de script Sockets et serveur 1/18 INF8007 Langages de script Sockets et serveur Michel Desmarais Génie informatique et génie logiciel École Polytechnique de Montréal Hiver, 2014 INF8007

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 Introduction 1. Objectif de l'ouvrage 9 2. Bref historique de PHP 10 3. Où se procurer PHP? 10 4. Conventions d'écriture 12 Vue d'ensemble de PHP 1. Qu'est-ce que PHP? 13 2. Structure de base d'une page

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

Compte rendu de PHP MySQL : création d un formulaire de base de données

Compte rendu de PHP MySQL : création d un formulaire de base de données REVILLION Joris Décembre 2009 3EI Compte rendu de PHP MySQL : création d un formulaire de base de données Objectifs : Le principal objectif de ce cours est de découvrir et de nous familiariser avec le

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

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP Au cours de ce TP, vous allez voir comment PHP permet aux utilisateurs, une interaction avec

Plus en détail

XML (extensible Markup Language)

XML (extensible Markup Language) XML (extensible Markup Language) Références : XML, Micro Application e-poche http://giles.chagnon.free.fr/cours/xml/base.html http://www.cgmatane.qc.ca/forgetj/formation/int4/xml.php 1. Qu est-ce que XML?

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

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

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

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

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

Cours du 15/11. Couche applica2on Perl, php, javascript 9p

Cours du 15/11. Couche applica2on Perl, php, javascript 9p Cours du 15/11 Couche applica2on Perl, php, javascript 9p Traitement en perl q fichier perl H. Fauconnier M2-Internet 2 Paramètres q Les paramètres sont accessibles par l'intermédiaire de la variable d'environnement

Plus en détail

Internet. Web Sécurité Optimisation

Internet. Web Sécurité Optimisation Internet Web Sécurité Optimisation Objectif Survol Web / Optimisation / Sécurité Sommaire 1. Fondamentaux 2. Hotes virtuels 3. Règles de réécriture 4. Optimisations 1. Fondamentaux - DNS fsf.com => 208.73.210.29

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

Sécurité informatique Apprendre l attaque pour mieux se défendre

Sécurité informatique Apprendre l attaque pour mieux se défendre 384 Sécurité informatique Apprendre l attaque pour mieux se défendre Deux très importants types de données sont principalement utilisés sur le réseau Internet : les pages web et les e-mails. Dans ce chapitre

Plus en détail

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin Sécurité des sites Web Pas un cours un recueil du net INF340 Jean-François Berdjugin Vulnérabilité Définition (wikipédia) : Dans le domaine de la sécurité informatique, une vulnérabilité est une faiblesse

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

Travaux pratiques de M2105 Web dynamique

Travaux pratiques de M2105 Web dynamique Travaux pratiques de M2105 Web dynamique L objectif des séances de TP du module M2105 est de créer un mini site web d annuaire permettant à différents utilisateurs de gérer leurs contacts. Les informations

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

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

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

Introduction au World Wide Web

Introduction au World Wide Web Introduction au World Wide Web Olivier Dalle Université de Nice - Sophia Antipolis http://deptinfo.unice.fr/ D après le cours original de Sacha Krakowiak Université Joseph Fourier Projet Sardes (INRIA

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

TD/TP11 - Réseaux. Question : Représenter le protocole téléphonique sous la forme d un diagramme temporel.

TD/TP11 - Réseaux. Question : Représenter le protocole téléphonique sous la forme d un diagramme temporel. Université de Bretagne Occidentale UFR Sciences Département d Informatique Licence STS, 2005-2006 L1, S1, Parcours A-IMP Introduction à l informatique TD/TP11 - Réseaux 1 Travaux Dirigés Exercice 1 Des

Plus en détail

Sécurité d un site PHP

Sécurité d un site PHP Sécurité d un site PHP Lundi 16 mai 2011 Jean-Ferdinand Susini Les impératifs de sécurité Une application Web est une application distribuée sur Internet => problème de sécurité : Les programmes de l application

Plus en détail

Sogenactif Payment Web PLUG-IN 6.15 -Guide d'installation - Version 2.01 Juin 2010 1/1

Sogenactif Payment Web PLUG-IN 6.15 -Guide d'installation - Version 2.01 Juin 2010 1/1 Sogenactif Paiement Web PLUG-IN 6.15 Guiide d' 'iinsttallllattiion Versiion 2..01 Juiin 2010 1/1 Sommaire 1. INTRODUCTION...2 2. LISTE DES OBJETS LIVRES...3 3. SCHEMA DES FLUX ET APPEL DES SCRIPTS...4

Plus en détail

RFC 6352 : vcard Extensions to WebDAV (CardDAV)

RFC 6352 : vcard Extensions to WebDAV (CardDAV) RFC 6352 : vcard Extensions to WebDAV (CardDAV) Stéphane Bortzmeyer Première rédaction de cet article le 1 septembre 2011. Dernière mise à jour le 18 août 2014 Date de publication

Plus en détail

Le World Wide Web. Introduction. Daniel Hagimont Laurent Broto. 13 mars 2011 IRIT/ENSEEIHT 1 / 34

Le World Wide Web. Introduction. Daniel Hagimont Laurent Broto. 13 mars 2011 IRIT/ENSEEIHT 1 / 34 Le World Wide Web Introduction Daniel Hagimont Laurent Broto IRIT/ENSEEIHT 13 mars 2011 1 / 34 Copyright (c) 2010 Daniel Hagimont & Laurent Broto. Permission is granted to copy, distribute and/or modify

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

L1 Option Programmation Web côté Serveur - Contrôle continu n 1

L1 Option Programmation Web côté Serveur - Contrôle continu n 1 L Option Programmation Web côté Serveur - Contrôle continu n Veuillez noircir les cases correspondantes à votre numéro d étudiant ( case/colonne). Si votre N est, il faut noircir le dans la ère colonne,

Plus en détail

Questions à choix multiples Page 1 de 10

Questions à choix multiples Page 1 de 10 INF2005 Programmation web Examen intra hiver 2015 Question #1 Qui a gagné la guerre des fureteurs dans les années 1990? a) Netscape b) Internet Explorer c) Firefox d) Chrome e) Opera f) Mosaic g) Aucune

Plus en détail

Architecture des Applications Réticulaires

Architecture des Applications Réticulaires Architecture des Applications Réticulaires Id : cours3.bk 47 2008-03-01 16 :08 :37Z queinnec Christian Queinnec Université Paris 6 Troisième vague 2007-2008 UPMC NI584-2008fev c C.Queinnec 2/19 Plan 1

Plus en détail

MANUEL INTERFACE HTTP version 2.3 (3 juin 2005)

MANUEL INTERFACE HTTP version 2.3 (3 juin 2005) KLUGHER MANUEL INTERFACE HTTP version 2.3 (3 juin 2005) Introduction : L interface HTTP de klugher.com vous permet d intégrer les fonctions d envoi de SMS dans vos applications. Elle est accessible tant

Plus en détail

Sécurité d un site php

Sécurité d un site php Sensibilisation IUT de Fontainebleau 8 juin 2015 1 2 1 2 Enjeux L application manipulent-ils des données fiables? L application interagit-elle avec le bon interlocuteur? Le secret des données échangées

Plus en détail

Sécurite Web. Xavier Tannier xavier.tannier@limsi.fr. Yann Jacob yann.jacob@lip6.fr

Sécurite Web. Xavier Tannier xavier.tannier@limsi.fr. Yann Jacob yann.jacob@lip6.fr Sécurite Web Xavier Tannier xavier.tannier@limsi.fr Yann Jacob yann.jacob@lip6.fr Généralités 80 % des sites contiennent au moins une faille de sécurité 24 familles de failles différentes : on ne présente

Plus en détail

AJAX AJAX. Asynchronous JavaScript And XML. Technologie pour créer des pages web interactives Basées sur XML, HTML et JavaScript

AJAX AJAX. Asynchronous JavaScript And XML. Technologie pour créer des pages web interactives Basées sur XML, HTML et JavaScript AJAX Ajax 1 AJAX Asynchronous JavaScript And XML. Technologie pour créer des pages web interactives Basées sur XML, HTML et JavaScript Utilise: HTML pour le marquage XML pour représenter les résultats

Plus en détail

Internet. Web Sécurité Optimisation

Internet. Web Sécurité Optimisation Internet Web Sécurité Optimisation Objectif Survol Web / Optimisation / Sécurité Sommaire 1. Fondamentaux 2. Hotes virtuels 3. Règles de réécriture 4. Optimisations 1. Fondamentaux - DNS fsf.com => 208.73.210.29

Plus en détail

Cours Web - Javascript

Cours Web - Javascript Cours Web - Javascript Thierry Vaira BTS IRIS Avignon tvaira@free.fr v0.1 Objectifs Se familiariser avec le langage Javascript et acquérir une pratique minimale. Être capable d intégrer des scripts clients

Plus en détail

Programmation MySQL/PHP. Programmation MySQL/PHP p.1/19

Programmation MySQL/PHP. Programmation MySQL/PHP p.1/19 Programmation MySQL/PHP Programmation MySQL/PHP p.1/19 CGI et bases de données Principe : création de documents à partir d une BD MySQL se charge du stockage, de la protection des données, de l interface

Plus en détail

1. Manipulation des formulaires avec PHP. 2. Transmission d'arguments entre pages : méthodes GET et POST. 3. Manipulation du JavaScript avec le PHP.

1. Manipulation des formulaires avec PHP. 2. Transmission d'arguments entre pages : méthodes GET et POST. 3. Manipulation du JavaScript avec le PHP. TP5: LES FORMULAIRES OBJECTIFS : 1. Manipulation des formulaires avec PHP. 2. Transmission d'arguments entre pages : méthodes GET et POST. 3. Manipulation du JavaScript avec le PHP. PARTIE 1: Formulaire

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

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

IUT d Orléans. Département Informatique. Année 2015-2016. Dévelopement Web Licence Professionnelle Web et Mobile

IUT d Orléans. Département Informatique. Année 2015-2016. Dévelopement Web Licence Professionnelle Web et Mobile IUT d Orléans. Département Informatique. Année 2015-2016 Dévelopement Web Licence Professionnelle Web et Mobile TD-TP Serveurs Web, HTTP et autres protocoles - Formulaires HTML5 - PHP 1 Exercice 1 Le protocole

Plus en détail

TD2-1 : Application client-serveur V2.3.0

TD2-1 : Application client-serveur V2.3.0 TD2-1 : Application client-serveur V2.3.0 Cette œuvre est mise à disposition selon les termes de la licence Creative Commons Attribution Pas d'utilisation Commerciale Partage à l'identique 3.0 non transposé.

Plus en détail

SOCIETE MONETIQUE TUNISIE SPS. «Serveur de Paiement Sécurisé» *****************************************

SOCIETE MONETIQUE TUNISIE SPS. «Serveur de Paiement Sécurisé» ***************************************** SOCIETE MONETIQUE TUNISIE «Serveur de Paiement Sécurisé» ***************************************** Spécifications Techniques d Usagers du Commerce Electronique. FONCTIONNEMENT Le Système de Paiement Sécurisé

Plus en détail

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

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

Plus en détail

Cours Web n o 8 PHP Notions avancées

Cours Web n o 8 PHP Notions avancées Gestion des chiers Cours Web n o 8 PHP Notions avancées Sandrine-Dominique Gouraud (gouraud@lri.fr) Pierre Senellart (pierre@senellart.com) Semaine du 20 novembre 2006 S.-D. Gouraud, P. Senellart (IFIPS)

Plus en détail

ALGORITHMIQUE PROGRAMMATION INTERNET - NIVEAU 1

ALGORITHMIQUE PROGRAMMATION INTERNET - NIVEAU 1 ALGORITHMIQUE PROGRAMMATION INTERNET - NIVEAU 1 Code NFA053, 6 ECTS Chapitre 05 HTML / LES FORMULAIRES Le plus grand soin a été apporté à la réalisation de ce support pédagogique afin de vous fournir une

Plus en détail

L'architecture REST. Benjamin Canou - Christian Queinnec Cours 3 du 3/12/2012. Architecture des Applications Réticulaires

L'architecture REST. Benjamin Canou - Christian Queinnec Cours 3 du 3/12/2012. Architecture des Applications Réticulaires Benjamin Canou - Christian Queinnec Cours 3 du 3/12/2012 Rappels sur HTTP Caractéristiques Formats des requêtes et réponses Les méthodes et en-têtes Rappels de base sur HTTP Caractéristiques du protocole

Plus en détail

Java EE - Cours 7. Cours de 2 e année ingénieur Spécialisation «Génie Informatique»

Java EE - Cours 7. Cours de 2 e année ingénieur Spécialisation «Génie Informatique» Java EE - Cours 7 Cours de 2 e année ingénieur Spécialisation «Génie Informatique» Rappels 2 Feuilles de Styles : CSS Lorsque l on réalise un site Web, il faut dissocier la partie forme de la partie fond.

Plus en détail

PROGRAMMATION HTML. Baccalauréat S -Spécialité ISN. Objectifs. Prérequis. Du code à la page. 4.3 : Langages de programmation : langage HTML

PROGRAMMATION HTML. Baccalauréat S -Spécialité ISN. Objectifs. Prérequis. Du code à la page. 4.3 : Langages de programmation : langage HTML PROGRAMMATION HTML Baccalauréat S -Spécialité ISN 4.3 : Langages de programmation : langage HTML Objectifs L'élève doit être capable o de créer une page WEB en langage HTML o d'analyser une page WEB en

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

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

PHP et MySQL : notions de sécurité

PHP et MySQL : notions de sécurité PHP et MySQL : notions de sécurité Jean-Baptiste.Vioix@u-bourgogne.fr Dans ces quelques lignes des notions de sécurité élémentaires vont être présentées. Elles sont insuffisantes pour toute application

Plus en détail

Prog. Web TP2 Année universitaire 2012 2013 - Formulaires - suite

Prog. Web TP2 Année universitaire 2012 2013 - Formulaires - suite Prog. Web TP2 Année universitaire 2012 2013 - Formulaires - suite 1 INSCRIPTION À UN SITE On suppose que l'inscription à un site offre de nombreux avantages. Pour s'inscrire à ce site il faut saisir :

Plus en détail

Programmation du Web : Présentation du Web dynamique

Programmation du Web : Présentation du Web dynamique Programmation du Web : Présentation du Web dynamique Jean-Baptiste Vioix (Jean-Baptiste.Vioix@u-bourgogne.fr) IUT de Dijon-Auxerre - LE2I http://jb.vioix.free.fr 1-8 Présentation Nécessité du web dynamique

Plus en détail

Programmation des Sites Web

Programmation des Sites Web Programmation des Sites Web Deuxième Année ENSIMAG ENSIMAG 2000-2001 James L. Crowley Séance 5 21 mars 2001 Plan : CGI : Common Gateway Interface...2 Formulaires HTML...3 Exemple d'un Script pour un html

Plus en détail

Crédit : Joyent, Inc. Cécile HARDEBOLLE cecile.hardebolle@supelec.fr

Crédit : Joyent, Inc. Cécile HARDEBOLLE cecile.hardebolle@supelec.fr Crédit : Joyent, Inc. Cécile HARDEBOLLE cecile.hardebolle@supelec.fr Prérequis PraDque de JavaScript Compréhension de l'architecture client- serveur web rôle du client vs. rôle du serveur protocole HTTP

Plus en détail

Architecture des Applications Réticulaires

Architecture des Applications Réticulaires Architecture des Applications Réticulaires Revision : 61 Christian Queinnec Université Paris 6 Deuxième vague 2008-2009 UPMC NI584-2008nov c C.Queinnec 2/25 Plan et tests 1 Maven Spring 2 Tests 3 Sécurité

Plus en détail

Plan. Outils et tests. Architecture des Applications Réticulaires. Outils. Maven. Revision : 53. Maven Spring. Christian Queinnec

Plan. Outils et tests. Architecture des Applications Réticulaires. Outils. Maven. Revision : 53. Maven Spring. Christian Queinnec UPMC NI584-2008fev c C.Queinnec 3/25 UPMC NI584-2008fev c C.Queinnec 4/25 Plan Architecture des Applications Réticulaires Revision : 53 Christian Queinnec Université Paris 6 1 Maven Spring 2 Tests et tests

Plus en détail

ISBN : 2-212-11407-9

ISBN : 2-212-11407-9 Groupe Eyrolles, 2005, ISBN : 2-212-11407-9 Table des matières Avant-propos................................................ XV CHAPITRE 1 Introduction..................................................

Plus en détail

Développement de l interface Web du projet Hôpital

Développement de l interface Web du projet Hôpital Pôle informatique 2013/2014 École Nationale Supérieure des Mines de Saint-Étienne Développement de l interface Web du projet Hôpital Antoine Zimmermann antoine.zimmermann@emse.fr Le cahier des charges

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