Université De Boumerdes Département de physique/Infotronique IT/M2 Technologies Web Réalisé par : Mr RIAHLA Doctorant a luniversité de limoge (France)

Slides:



Advertisements
Présentations similaires
Novembre 2005 – Michel Desconnets PHP : théorie Objectif : introduire les concepts globaux permettant d'aborder la programmation en PHP.
Advertisements

Conception de Site Webs Interactifs Cours 3
TOUQUET Arnaud ▪ GI05 BLONDEEL Igor ▪ GM05
HTML5, CSS3, PHP5, Javascript, AJAX
Département de physique/Infotronique
- Couche 7 - Couche application. Sommaire 1)Introduction 1)DNS 1)FTP et TFTP 1)HTTP 1)SNMP 1)SMTP 1)Telnet.
Cours MIAGE « Architectures Orientées Services » Henry Boccon-Gibod 1 Architectures Orientées Services Composants de Service Exemple pratique de développement.
L’architecture .net et ASP.net
Exposé de Système - Informatique et Réseau
Programmation Web Les JSP.
APACHE HTTP SERVER Formation TRANSFER ALGER Mai 2002.
TRANSFER Alger – Serveur Web Nicolas Larrousse Septembre Petit historique du Worl Wide Web Notion dHypertexte Extension à internet par Tim Berners.
XHTML EXtensible HyperText Markup Language. HTML et XML HTML (HyperText Markup Language) et XML (eXtensible Markup Language) sont deux spécifications.
51 Les technologies XML Cours 6 : XML et les architectures N-tiers – Tier Métier Janvier Version 1.0 -
Cours 6 : XML et les architectures N-tiers – Tier Applicatif
LICENCE MIAGE Introduction Programmation Orientée Objet JAVA philippe
HTML Les types de balises

TP 3-4 BD21.
Servlet JAVA.
Formulaire HTML Introduction. Définition de formulaire.
La configuration Apache 2.2 Lhébergement virtuel.
Le Téléphone Russe Le Téléphone Russe. Le Téléphone Russe Le Téléphone Russe.
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
Développement d’applications web
XML-Family Web Services Description Language W.S.D.L.
SERVLETS PRESENTATION
Serveurs Partagés Oracle
Analyse des protocoles de la couche application
Les instructions PHP pour l'accès à une base de données MySql
ASP.NET Par: Hugo St-Louis. C ARACTÉRISTIQUES A SP. NET Évolution, successeur plus flexible quASP (Active Server Pages). Pages web dynamiques permettant.
Projet poker 1/56. Introduction Présentation de léquipe Cadre du projet Enjeux Choix du sujet 2.
Gestion des bases de données
Introduction à la programmation (Java)
Logiciel gratuit à télécharger à cette adresse :
1. 2 PLAN DE LA PRÉSENTATION - SECTION 1 : Code HTML - SECTION 2.1. : CSS (Méthode 1) - SECTION 2.2. : CSS (Méthode 2) - SECTION 3 : JavaScript - SECTION.
Web dynamique PhP + MySQL AYARI Mejdi 2006
PhP-MySQL Pagora 2012/2013 CTD 1 - Presentation de moi ^^
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
Document élaboré à Centrale Paris par Pascal Morenton LES TECHNOLOGIES DU WEB 1. LES PHASES D UN DEPLOIEMENT DE RESEAUX 2. LE LANGAGE HTML 3. LE LANGAGE.
Jonathan Montois Cyrille Kriegel
Projet de Master première année 2007 / 2008
Initiation au web dynamique
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
Les feuilles de style CSS
JEE 5 F.Pfister 2 institut eerie JEE – Une plateforme serveur  Développement et exécution d'applications réparties.
M2 – MIAGE/SID Servlet M2 – MIAGE/SID
Le langage XHTML 420-S4W-GG Programmation Web Client
PROGRAMMATION WEB FRONT-END.
1 Architecture orientée service SOA Architecture orientée service SOA (Service Oriented Architecture)
PHP 5° PARTIE : LES COOKIES
1 F o r m a t i o n A R S World Wide Web (WWW). 2 F o r m a t i o n A R S Contributions m Création: Claude Gross (UREC) m Modifications: Bernard Tuy,
Les réseaux - Internet Historique Réseau local Internet Les protocoles
Cours de programmation web
L’ ACCESSIBILITE « C’est mettre le Web et ses services à la disposition de tous les individus, quels que soient leur matériel ou logiciel, leur infrastructure.
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
S'initier au HTML et aux feuilles de style CSS Cours 5.
Campus-Booster ID : **XXXXX Copyright © SUPINFO. All rights reserved Le développement Web.
Page 1Dernière mise à jour: 17 avril 2015 Service de l'enseignement des technologies de l'information, © HEC Montréal, Tous droits réservés.
S'initier au HTML et aux feuilles de style CSS Cours 5.
INTERNET Le langage HTML
 Formulaires HTML : traiter les entrées utilisateur
Initiation au JavaScript
Les Servlets Présentation Cycle de vie Principe de fonctionnement
Séance /10/2005 CSS et Dreamweaver. CSS : principes Cascading Style Sheet = feuille de style en cascade Norme du W3C :
CPI/BTS 2 Programmation Web Les sites dynamiques Prog Web CPI/BTS2 – M. Dravet – 02/10/2003 Dernière modification: 02/10/2003.
Scénario Les scénarios permettent de modifier la position, taille … des calques au cours du temps. Son fonctionnement est très proche de celui de Macromedia.
Dreamweaver Séance 1.
Introduction au HTML Qu’est ce que le HTML ?
APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Valérie Bellynck, Benjamin Brichet-Billet, Mazen.
Transcription de la présentation:

Université De Boumerdes Département de physique/Infotronique IT/M2 Technologies Web Réalisé par : Mr RIAHLA Doctorant a luniversité de limoge (France) 2009/2010 Université De Limoges

Plan Bref présentation dInternet et du www Histoire dInternet Le W3C Architecture et logiciels pour le web Clients web Serveurs web Proxy Cache CDN HTTP Technologies côté clients HTML CSS JavaScript Applets

Plan Technologies côté serveur Cookies CGI PHP ASP/ASP.NET Servlets et JSP Moteurs de recherche et Web Services

Brève présentation dInternet et du www

Histoire dInternet 1962: étude pour la création dun réseau pour commander linfrastructure nucléaire américaine capable de résister a une attaque nucléaire Choix dun réseau par commutation de paquets 1969: construction du premier réseau physique (4 machines, 50 kbps) 1972: envoie du premier (23 machines, 50kpbs) 1973: création de TCP/IP 1974: première utilisation du terme Internet 1979: création dUsenet 1982: TCP/IP devient le standard dInternet 1983: Création du Domain Name System

Histoire dInternet 1986: création de lIETF 1990: création dun système hypertext par Tim Berners-Lee 1992: le CERN présente le World Wide Web 1993: création de Mosaic, premier client pour le web 1994: création du w3c 1995: IE : IE 4.0 sort, Netscape a 72%, IE 18% 1998: Netscape jette léponge et se fait racheter par AOL 1998: Netscape rend le code source de son navigateur disponible sous licence open source 2002: Mozilla : début de la deuxième guerre des browsers

W3C World Wide Web Consortium Crée en buts Accès universel au web à travers des technologies tenant compte des différentes cultures, langues, handicapes… Web sémantique Web of trust: guider le développement du web en tenant compte des aspects légaux, commerciaux et sociaux liés aux nouvelles technologies. Rôle du w3c Interopérabilité: les spécifications des protocoles et langages du web doivent pouvoir fonctionner ensembles. Évolution: sassurer que de nouvelles technologies peuvent être ajoutées au web. Standardisation: donner des Recommandations décrivant les technologies du web.

W3C - Organisation Le w3c est accueilli par 3 organisations: MIT (USA) KEIO (Japon) ERCIM (France) 3 principes Neutralité: appel aux commentaires publics Coordination: travaux avec dautres organismes (IETF, Unicode Consortium…) Consensus: si possible, décision à lunanimité sinon à la majorité. Membres du w3c: Financent le w3c Participent au choix des technologies futures Whos who de linformatique: Microsoft, Cisco, Oracle, Apple… Des membres institutionnels (universités)

W3C – Domaines dactivité Architecture XML, Web Services, Internationalization, URI (Uniform Resource Identifier), DOM Interaction Compound Documents, Device independence, Graphics, HTML, CSS, MathML, Synchronized Multimedia, Voice Browser, XForms Technologie et société Semantic Web, Platform for Privacy Preference, XML signature, XML encryption, XML key management, Patent Policy and Standards WAI: Web Accessibility Initiative Politique et techniques pour laccés à linformation des personnes handicapées

Architecture et logiciels pour le web

Fonctionnement du web Serveur Web Client Proxy Cache

Les clients web Variété des plateformes Windows, Unix, PDA… Variété des logiciels IE, Firefox, Mozilla, Opera, Lynx… Caractéristiques Gestion dHTML/XHTML Gestion de CSS Gestion de JavaScript Gestion de plugins

Répartition des clients web Source: Décembre 2004 Octobre 2005 IE665.5%68.9% IE59.9%5.6% Mozilla et Firefox 17%21.3% Opéra 7/81.8%1.3% Netscape1.6%

Étapes pour la visualisation dune page web Lutilisateur entre une URL Le client web effectue une résolution DNS pour avoir ladresse du serveur Il effectue la requête http et reçoit un document Il analyse le document pour Préparer laffichage Trouver les liens vers les images Une requête est effectuée pour downloader les images Cela peut se faire en parallèle ou séquentiellement

Serveurs Web Programmes répondant aux requêtes des clients web Souvent appelé serveur http ou httpd Écoute sur le port 80 (convention) dune machine 2 types de ressources Statiques: ne nécessitent pas de traitement côté serveur Dynamiques: chaque demande de page nécessite des opérations spécifiques du serveur Nombreux logiciels disponibles: Apache Internet Information Service Sun Java System Web Server

Parts de marcher des serveurs ( sites) Apache: 70.98% Microsoft IIS : 20.24% Sun : 2.52% Zeus : 0.78% Source:

Le serveur Apache Serveur HTTP/1.1 Versions pour Windows, OS/2, Linux… Utilise du pré-fork Configuration du serveur en plaçant des directives dans un fichier texte. httpd.conf (lu au démarrage).htaccess (accès au répertoire) Syntaxe: Directive Valeur Les directives sappliquent à lensemble du serveur Leur portée peut-être limitée avec des sections,,,,,,

Apache – Restriction daccés Directives Allow,Deny from all from from unice.fr Peut spécifier un ordre pour les directives daccés order deny, allow : les deny sont évalués avant les allow order allow, deny : les allow sont évalués avant les deny Exemple order deny,allow deny from all allow from.ncsa.uiuc.edu

Apache – Restriction daccès par mot de passe Directives AllowOverride et AuthConfig doivent avoir été fixées Les directives daccès doivent être placées dans le fichier.htaccess AuthTypeAuthentication: type dauthentification (Basic) AuthName: Nom de la zone dauthentification AuthUserFile: localisation du fichier des passwords (générés avec httpasswd) AuthGroupFile: localisation du fichier de groupes (optionnel) Require: Contraintes à satisfaire pour autoriser laccès. Exemple: AuthType Basic AuthName "By Invitation Only" AuthUserFile /usr/local/apache/passwd/passwords Require user rbowen sungo

Apache – Virtual Host Permet davoir plusieurs serveurs sur une même machine Virtual Host basé sur IP Utilise lIP de la connexion pour déterminer le bon serveur Virtual Host basé sur le nom Utilise le nom de domaine fourni par le client pour déterminer le serveur Exemple NameVirtualHost * ServerName DocumentRoot /www/domain ServerName DocumentRoot /www/otherdomain

Le proxy cache Pourquoi demander plusieurs fois la même chose à un serveur? Certains clients web ont un cache personnel à lutilisateur. Le proxy travaille au niveau dun domaine (ensemble de clients). Les clients demandent au proxy, le proxy demande au serveur Améliore la réactivité Diminue la charge dun serveur Diminue lutilisation de la bande passante Rôle du proxy cache: Maintenir un cache des objets récemment demandés Recharger ceux qui ont expiré quand ils sont demandés Possibilité de forcer le chargement dune nouvelle copie si Pragma: no- cache

Le proxy cache Fonctionnalités avancées Interdire laccès au web a certaines heures/personnes Limiter laccès à certains sites Changer le contenu (supprimer les images, ajouter des informations…) Quest-ce qui est mis en cache? Tout HTML Certains résultats de scripts CGI (si Expires header présent) Pas ce qui nécessite une authentification Au final, cela dépend de la configuration, du logiciel et de http

CDN Content Delivery Network Un (très) gros serveur peut supporter plusieurs centaines de milliers de connexions par secondes MAIS: Rien pour la latence Le réseau peut être un goulot détranglement (cf. 9/11) Solutions: Diriger un client vers un serveur « proche » Approcher physiquement le contenu du client Problèmes: Diriger le client Assurer la synchronisations des miroirs

Routage de contenu Donner au client le contenu disponible à lendroit le plus approprié Plusieurs métriques Proximité au sens réseau Proximité géographique Temps de réponse Type dutilisateur (payant…) Routage global par redirection DNS Sous un même nom sont regroupés plusieurs serveurs Le serveur DNS retourne au client la « bonne » IP Mais Risque de latence élevée pour le lookup La requête DNS ne contient pas dinformation sur le contenu demandé

Routage de contenu Routage par port TCP La requête est redirigée par un serveur vers dautres serveurs suivant le numéro de port Routage de niveau 7 Analyse du contenu de la requête Une requête peut générer plusieurs sous requêtes transparentes Web Cache Communication Protocol Un routeur intercepte les demandes des clients et les envoient à des caches Les caches indiquent aux routeurs (avec WCPP) quels protocoles ils servent

HTTP (Vue dans le cours précédent)

Types MIME Multipurpose Internet Mail Extension Originellement pour le mail, maintenant utilisé par http Permet dindiquer ce que des données (des paquets de 8 bits) représentent afin de faciliter leur utilisation 2 informations sont nécessaires Content-Transfer-Encoding: type dencodage utilisé Content-Type: champs type/soustype Types MIME communs image/jpeg text/plain video/mpeg

Architecture Client-Serveur pour le Web

Client Serveur HTML XHTML CSS Applets Java ActiveX Servlet Java CGI ASP PHP JSP Serveur BD JDBC/ ODBC

Technologies coté client

HTML HyperText Markup Language Langage utilisé pour les documents portables Dérivé de SGML qui était plus complexe Mélange structure et présentation Utilise des balises … Actuellement disponible dans la version 4.0 Amélioration de laccessibilité Meilleur séparation de la structure et de la présentation Support des frames Tables avancées Successeur: XHTML

Exemple de document HTML Document HTML Test

Un document HTML commence par un entête Il indique quelle version dHTML est utilisée (ici 4.01 transitional). Il est possible de préciser des sous-versions HTML 4.01 strict HTML 4.01 transitional HTML 4.01 framset Le reste du document se trouve encadré par les balises HTML

Les balises permettent de mettre des informations qui ne sont pas du contenu Titre (title) Mots Clefs Autres informations Les informations ne sont donc souvent pas affichées à lécran Un document doit avoir un dans la section Des Meta-Data sont optionnelles Certaines Meta-Data servent aux moteurs de recherche HTML (HEAD)

Le corps du document se trouve entre Autrefois possible de spécifier des informations de rendu visuel background (image de fond) text (couleur du texte) link (couleur dun lien) vlink (couleur dun lien visité) alink (couleur dun lien sélectionné) Maintenant deprecated, utiliser des feuilles de style HTML (BODY)

Headings Décrit brièvement le contenu ou le sujet dune section Dans un browser, change la taille de la police 6 niveaux, de H1 (plus important) à H6 (moins important) Elephant Souris Paragraphes Permet dindiquer un paragraphe sans balise fermente Retour à la ligne HTML (BODY)

Listes Doivent contenir au moins un élement 3 possibilités: libres, ordonnées, descriptives On peut mélanger/imbriquer différentes listes Listes libres Première information Deuxième information Listes ordonnées Première information Deuxième information HTML (BODY)

Listes descriptives Première information Deuxième information HTML (BODY)

Tables: Permet de ranger des informations en lignes et colonnes Peut avoir une CAPTION (son nom) Peut avoir un SUMMARY Possibilité de grouper des lignes ou des colonnes Le nombre de lignes et colonnes est déduit du code HTML Lignes Élément sans fermeture Cellule Élément pour lentête dune cellule Élément pour le contenu HTML (BODY)

Liens et ancres: Permet de relier une ressources à une autre Chaque lien a 2 ancres et une direction Il part de lancre source et va à lancre destination Création de lien Balise … Attribut href pour indiquer une source Attribut name pour indiquer une destination Attribut title pour donner des informations (tooltip, son…) INRIA Sophia Antipolis Voici une ancre accessible avec # On va a lancre …. HTML (BODY)

On peut mettre href et name ensembles Les ancres doivent être uniques dans un document! Objets, Images, Applets: Avant, utilisation de et Limités à lexistant (comment gérer les nouveaux média) Applet était seulement pour les applets Java Problème de laccessibilité Tout est remplacé par mais est toujours valide HTML (BODY)

Inclusion dimage par On indique la localisation de limage Une description courte alt Une description longue longdesc (optionnel) Inclusion dimage par la photo de toto Pour les applets, plus tard… HTML (BODY)

HTML (FRAME) Frames –Offre plusieurs vues de documents –Permet de maintenir des informations fixes et dautres temporaires –On remplace par –On spécifie le nombre de lignes (rows) et de colonnes (column) ….. –Les frames peuvent être imbriquées –Elles peuvent être nommées pour devenir la cible de liens –Un contenu alternatif peut être donné avec

HTML (FRAME) Problèmes: –Les frames définissent un rendu visuel, pas une structure –Les frames nont pas dURI –La vue dune page avec frames est déterminé par une séquence de navigation et non plus une unique action

HTML (FORMS) Les forms permettent dajouter de linteractivité Linteraction se fait à travers des objets control: buttons checkboxes radio buttons menus text input file select hidden controls objects controls Utilisation dune balise … 2 méthodes, POST et GET

HTML (FORMS) First name: Last name: Male Female

HTML (FORMS) 2 méthodes, POST et GET La différence concerne la façon dont les données sont encodées GET est utilisé dans le cas de demandes pures (pas de modifications des données sur le serveur). POST est utilisé dans le cas de stockage/maj de données Côté client: avec GET les données sont encodées sous forme dune URL. Avec POST elles sont encodées dans le corps de la méthode Côté serveur: un traitement différent est nécessaire suivant POST/GET

CSS Cascading Style Sheets ( Famille des styles Décrit comment un document est présenté à lécran Permet dajouter un style (font, couleur…) à une page web CSS1 et CSS2 dispo, CSS3 en préparation Une feuille de style se place dans la balise ….

CSS Une feuille de style est constituée de règles Chacune a 3 parties Le selector qui indique quelle partie du texte est affecté par la règle La property qui spécifie laspect du rendu qui est modifié La valeur qui indique la valeur de la property Les règles sont appliquées de la plus spécifique à la moins spécifique

CSS Exemple: appliquer un style a lélément body (i.e. tout le document) body { color: purple; background-color: #d8da3d }

CSS (Selector) Les selector peuvent être des patterns extrêmement complexes * nimporte quel élément > relation père fils E:link E est ancre source dun lien non visité E:visited E est ancre source dun lien visité E[foo="warning"] E dont lattribut foo est warning E#myID E dont lID est myID Selector de type Match le nom dun type délément du langage (H1, BODY…) Selector avec descendants Match B si il est contenu dans A blah blih A B {color: blue} H1 {color: blue}

CSS (Selector) 4 façons de matcher les attributs [att] attribut att [att=val] attribut ayant la valeur val [att~=val] liste de mots contenant le mot val [att|=val] liste de mots commençant par val Exemples A[href="www-sop.inria.fr"] {color: red} p[class~=couleur] {color: red} blah blah On peut simplifier ~= par. p.couleur {color: red}

Javascript Langage de script pour pages HTML Crée par Netscape corp. en 1995 RIEN A VOIR AVEC JAVA Orienté Objet Langage interprété au chargement de la page par le client Peut être placé nimporte où dans la page xxxxxxx

Javascript – Types, variables, fonctions 5 types de base Chaînes de caractères Nombres Booléens Objets Fonctions Déclaration de variable var maVariable = valeur maVariable = valeur

Javascript – Types, variables, fonctions Déclaration de fonction function maFonction(argument1,argument2,etc) { xxxxxxx } Appel de fonction maFonction(1,2…) Accés à un champs Notation pointée: toto.titi

Javascript – Hiérarchie dobjets

Ces objets sont crées par javascript automatiquement si les éléments correspondants existent dans la page Certains existent toujours navigator window document location history

Javascript – Objets par défaut navigator Contient le nom et la version du navigateur, les plugins installés… window Propriétés qui sappliquent à la fenêtre tout entière document Propriétés sur le contenu du document (titre, couleur…) location URL actuelle history URLs visitées

Javascript – Exemples var name = "Hege" document.write(name) document.write(" "+name+" ") var browserName=navigator.appName; if (browserName=="Netscape") { alert("Hi Netscape User!"); } Affichage de la valeur dune variable Détection du nom du navigateur

Javascript – Aujourd'hui ExtJs Jquerry

Applets Java Crée par Sun Microsystems Un plugin permet de faire tourner une machine virtuelle (JVM) dans un navigateur Un client download le code java compile (.class,.jar) et lexécute localement Lapplet sexécute dans une "Sand Box", elle a des capacités très limitées, elle ne peut pas Lire/Ecrire/Effacer de fichiers localement Créer des connexions réseau vers dautres machines que celle dont elle est originaire Crée un ClassLoader ….. On peut saffranchir de ces limitations en signant les applets

Applets Java – Cycle de vie Une applet passe par différentes phase Chargement par le browser Méthode init() Exécution Méthode start() Fin dexécution temporaire Méthode stop() Fin dexécution définitive Méthode destroy() Il est possible de surcharger ces méthodes pour changer les comportements par défaut

Applet - Exemple import java.applet.Applet; import java.awt.Graphics; public class Simple extends Applet { StringBuffer buffer; public void init() { buffer = new StringBuffer(); addItem("initializing... "); } public void start() { addItem("starting... "); } public void stop() { addItem("stopping... "); } public void destroy() { addItem("preparing for unloading..."); } void addItem(String newWord) { System.out.println(newWord); buffer.append(newWord); repaint(); } public void paint(Graphics g) { //Draw a Rectangle around the applet's display area. g.drawRect(0, 0, size().width - 1, size().height - 1); //Draw the current string inside the rectangle. g.drawString(buffer.toString(), 5, 15); } }

Technologies côté serveur

Les Cookies Chaîne de caractère générée par le serveur et stockée par le navigateur Utilisés pour maintenir des informations de navigations Voyagent dans les headers http Structure: Nom Valeur Date dexpiration Chemin de validité Domaine de validité Attribut de sécurité (si secure, alors SSL)

CGI Common Gateway Interface Permet lexécution de programmes externes par un serveur http Le CGI permet de faire communiquer le serveur et des programmes pour générer des pages web Un programme CGI peut être écrit dans un langage qui Peut lire des flux en entrée Sait traiter des chaînes de caractères Écrire des flux en sortie Peut être exécuté sur un serveur Les plus utilisés sont Perl, C, C++, Java…

CGI On indique dans la configuration du serveur un répertoire où se trouvent les scripts CGI Quand un fichier est demandé dans ces répertoires, il est exécuté et le résultat retourné #!/bin/sh echo Content-type: text/html echo echo " " echo " Bonjour " echo " " Variables denvironnement prédéfinies QUERY_STRING: Données passées au script REMOTE_ADDR: Adresse Internet de la machine faisant la requête

CGI Les informations entrées dans les formulaires (méthode GET) sont automatiquement passées dans QUERY_STRING On peut passer manuellement des valeurs Link QUERY_STRING contiendra nom=toto&action=find Si méthode POST, les données sont envoyées sur lentrée standard du script

PHP PHP: Hypertext Processor Langage de script avec syntaxe perl/C Crée en 1994, actuellement en version 4 PHP3: totalement interpreté PHP4: utilise un moteur de script (ZEND) pour améliorer les performances PHP vient avec une énorme librairie de fonctions

PHP PHP vient avec une énorme librairie de fonctions Fonctions mathématiques Fonctions MCAL Cryptage Hash Fonctions diverses fonctions mSQL Fonctions Microsoft SQL Server Fonctions MySQL Réseau Fonctions NIS Oracle 8 functions Fonctions Oracle Entrées/sorties Ovrimos SQL Expressions régulières compatibles Perl Fonctions PDF Verisign Payflow Pro functions Fonctions PostgreSQL Fonctions POSIX Pspell GNU Readline Fonction GNU Recode Expressions régulières Satellite CORBA client extension Sémaphores et gestion de la mémoire partagée Gestion des sessions Mémoire partagée SNMP functions Socket Fonctions de chaîne de caractères Fonctions Shockwave Flash Sybase ODBC Fonctions URL Fonctions sur les variables WDDX functions Analyseur syntaxique XML XSLT YAZ Zlib (Compression) Fonction d'exécution de programmes Forms Data Format Fonctions filePro Système de fichiers FTP Fonctions de fonctions Fonctions GNU Gettext GMP Fonctions HTTP Fonctions Hyperwave Fonctions InterBase Fonctions ICAP Fonctions Informix Images Fonctions IMAP Options PHP & informations Fonctions Ingres II Fonctions LDAP Fonction mail 10.1 Apache 10.2 Tableaux 10.3 Fonctions Aspell 10.4 Fonctions mathématiques sur des nombres de taille arbitraire 10.5 Fonctions de calendrier 10.6 Fonctions CCVS API 10.7 Fonctions Objets 10.8 Support COM pour Windows 10.9 Fonctions ClibPDF CURL Fonctions de paiement Cybercash Fonctions de dates et heures Fonctions dba Fonctions dBase Fonctions dbm Accès aux dossiers Fonctions DOM XML Gestion des erreurs

PHP Le code PHP se trouve dans le fichier HTML côté serveur Le serveur interprète le code PHP et envoie la page modifiée au client Le serveur détecte les fichiers PHP grâce a leur extension Intégration dans un fichier: code php Les instructions sont séparées par ;

PHP PHP Test Hello World '; ?> PHP Test Hello World Exécution par le serveur

PHP On peut interfacer facilement PHP et les forms HTML Your name: Your age: Hi. You are years old. Hi Joe. You are 22 years old. Client Serveur

ASP/ASP.net Active Server Pages crée par Microsoft Pages HTML contenant du code de script exécuté par le serveur Scripts supportés par défaut: VBScript, JScript, Perl, et REXX ASP.net ajoute tous les langages.net (VB.net, C#, Scheme, Smalltalk…)

Servlets et JSP Réponse de Sun a CGI Servlets vs CGI: Efficacité: la machine virtuelle tourne en permanence, les requêtes sont traitées par des threads, non des process Ergonomie: Java Portabilité: Java Lourdeur: Java Java Server Pages: ASP version Sun, langage de script Java Pages identifiées par lextension.jsp

Servlets et JSP Pour développer: Java Servlet Development Kit (JSDK) Nécessite lajout dun module au serveur: Tomcat pour Apache Allaire JRun pour IIS Les servlets sont placées dans un répertoire du serveur et sont accédées à travers une URL.

Servlets et JSP - Fonctionnement JSP a un fonctionnement en 4 étapes Requête reçue par le serveur La page demandée est traduite en servlets Les servlets sont compilées Puis exécutés puis le résultat transmis au client Processus lourd, surtout à la première demande Les servlets évitent la traduction et la compilation

JSP – Cycle de vie Possibilité de surcharger jspInit() et jspDestroy() pour modifier linitialisation et la destruction

JSP Inclusion dans un fichier HTML avec 4 tags : Directives donnant des indications au moteur JSP : Déclaration Java : Expression Java : Fragment de code JSP > Hello > Variables pré définies out (javax.servlet.jsp.JspWriter) pour générer du HTML request (javax.servlet.http.HttpServletRequest) pour la transaction entre le client et le serveur

JSP - Exemples Salut! La date est < % out.println(« On cherche la date »); java.util.Date date = new java.util.Date(); %> Salut! La date est

Servlets Se programme comme un classe Java classique Implémente javax.servlet.http ou sous-classe javax.servlet.http.HttpServlet import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorld extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); out.println("Hello World"); }

Servlets – Cycle de vie Servlets permanents ou temporaires suivant configuration du serveur Permanent: démarrée avec le serveur Temporaire: démarrée à la requête dun client Un serveur communique avec une servlet à laide de 3 méthodes principales: init() Appelée quand la servlet est chargée Permet douvrir des fichiers, établir des connexions… Garantie de se terminer avant tout autre méthode service() Chaque appel de client génère un appel a service Plusieurs appels concurrents possibles si plusieurs clients destroy() Appelée par le serveur quand la servlet est déchargée Permet le nettoyage de ressources

Servlets – Cycle de vie La méthode service() interprete la requête HTTP et décide quelle autre méthode appeler.

Servlets et HTTP Plusieurs méthode prédéfinies dans HttpServlet doGet() doHead() doDelete() doOptions() doPost() doTrace() doGet(HttpServletRequest req, HttpServletResponse resp) pour gérer les methodes GET doPut(HttpServletRequest req, HttpServletResponse resp) pour gérer les méthodes POST Les paramètres sont obtenus en faisant req.getParameter(…)

Moteurs de recherche et Web Services

Moteurs de recherches Permettent de trouver de linformation sur le web Indexent régulièrement des sites pour construirent une base de données (possibilité de lempêcher avec le fichier robots.txt) Une recherche se fait dans la base de données important davoir une BD à jour Actuellement 2ème génération 1ere génération: utilisation des mots clefs et des tags META 2eme génération: analyse de la structure des pages (liens entrant, sortant) et construction dun indice de réputation 3eme génération: utilisation des habitudes de recherche et meilleure extraction dinformations contextuelles

Google et PageRank Google est un moteur de 2eme génération Utilise lalgorithme PageRank pour déterminer ladéquation dune page à la demande PageRank est un indice de limportance dune page web Chaque lien sortant est un « vote » pour une page Plus une page a de votes, plus elle est importante Variation de lalgorithme Élimination des liens venant de « link farms » Diminution de limportance dun vote suivant la cible

Web services - Principes Accés au web traditionnellement à travers des browsers Web Services: API permettant à des programmes de communiquer avec des technologies www Technologies clefs: XML, HTTP, SOAP, WSDL, UDDI Idée: Des services sont publiés sur Internet Des applications cherchent ces services et y accèdent Questions Quels services sont offerts? Comment invoque-t-on ces services? De quelles informations ont-il besoin? Comment fournir ces informations? Comment les réponses sont-elles envoyées?

WSDL Web Service Description Language Fichier XML contient la description des services groupe de méthode exposées méthode exposée paramètre valeur de retour description du paramètre

WSDL - Exemple

UDDI – SOAP Universal Description, Discovery and Integration Annuaire dinformations (WSDL) sur les WS Ressemble à un DNS ou un broker Corba En général, les WS communiquent avec SOAP Simple Object Access Protocol XML sur http

SOAP - Exemple HTTP/ OK Content-Type: text/xml; charset="utf-8" Content- Length:nnnn <SOAP-ENV:Envelope xmlns:SOAP-ENV=" SOAP- ENV:encodingStyle=" "/> 14.5

Références mrim.imag.fr/ressources/docPHP4_v4c/manuel_toc.html mrim.imag.fr/ressources/docPHP4_v4c/manuel_toc.html Cours de Master STIC Programmation et sécurité du Web, Philippe Poulard : Licence Miage