Web dynamique : solutions Sessions sous HTTP

Slides:



Advertisements
Présentations similaires
Internet et le client- serveur Licence Pro IE Cours Internet / Intranet Le Web HTML Protocoles Le client universel Contenus dynamiques.
Advertisements

Cours 5 : XML et les architectures N-tier Janvier Version 1.0 -
Conception de Site Webs dynamiques Cours 6
TOUQUET Arnaud ▪ GI05 BLONDEEL Igor ▪ GM05
Présentation de l’Internet
12/10/2000Cédric Bertho - Comparaison entre Perl et Python1 vs Comparaison.
L’architecture .net et ASP.net
Exposé de Système - Informatique et Réseau
TRANSFER Alger – Serveur Web Nicolas Larrousse Septembre Petit historique du Worl Wide Web Notion dHypertexte Extension à internet par Tim Berners.
Cours 6 : XML et les architectures N-tiers – Tier Applicatif
HTML Les types de balises
Design Pattern MVC En PHP5.
en INFORMATIQUE et COMMUNICATION
Commission Web de l'Université de Rennes 1 9 mai Copyright© 2000 Pascal AUBRY - IFSIC - Université de Rennes 1 Le serveur web de lIFSIC Pascal AUBRY.
TP 3-4 BD21.
11:16:331 Programmation Web Programmation Web : Formulaires HTML Jérôme CUTRONA
16/10/10 Préparé par: Ing. Rodrigue Osirus (+509) , *** Site web dynamique.
Common Gateway Interface
Oct.-2000DESS IIDEE © B. BAH 1 ASP Caractéristiques dun fichier ASP Son extension : « *.asp » La balise: Son indépendance vis à vis de toute plate–forme,
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
Formation à PHP version Copyright© Pascal AUBRY - IFSIC - Université de Rennes 1 Formation à PHP Pascal AUBRY IFSIC - Université de Rennes.
Web et Flux RSS Sébastien Bayle. 30/01/09 Comment faire un site web aujourdhui ? – Construire son propre site – Utiliser des outils OpenSource – Utiliser.
Le langage ASP Les variables d'environnement HTTP avec Request.
Comprendre l’environnement Web
Développement Rapide dApplications Web avec.NET « Mon premier site »
Stéphane Frénot1INT - 4 Internet/Intranet Les architectures.
ASP.NET Par: Hugo St-Louis. C ARACTÉRISTIQUES A SP. NET Évolution, successeur plus flexible quASP (Active Server Pages). Pages web dynamiques permettant.
Atelier « Créations de sites » : Les techniques de réalisation de sites EPN :...
Clients riches RIA (Rich Internet Application) / RDA
PHP Géant Aurélien. PHP (Hypertext Preprocessor) Langage de scripts libre Permet produire des pages Web dynamiques dispose d'un très grand nombre d'API(Application.
PhP-MySQL Pagora 2012/2013 CTD 1 - Presentation de moi ^^
JSP (Java Server Pages)
AJAX.
Les Serveurs WEB.
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.
J2EE vs .NET Réaliser par : SEIF ENNACER BADRA && CHETOUI RIM.
Initiation au web dynamique
JEE 5 F.Pfister 2 institut eerie JEE – Une plateforme serveur  Développement et exécution d'applications réparties.
La Programmation CGI Principe Général Traitement des informations
Internet et le client- serveur Licence Pro IE Cours Internet / Intranet Le Web HTML Protocoles Le client universel Contenus dynamiques.
Module I-C3 : Applications Web IUT R&T 2e année
PROGRAMMATION WEB FRONT-END.
Content Management System CMS. Pourquoi ? Obligation de ressaisir des contenus publiés à plusieurs endroits Pas d’outils de gestion de qualité de l’information.
PHP 5° PARTIE : LES COOKIES
0 Objectifs de la session n°1  Revenir sur toutes les bases théoriques nécessaires pour devenir un développeur Web,  Découvrir l’ensemble des langages.
Cours de programmation web
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Auvray Vincent Blanchy François Bonmariage Nicolas Mélon Laurent
Conférence Technique Java 2 Frédéric Jacquet. Au programme  Présenter les différents outils  Découverte - Java coté serveur  Appréhender l ’existant.
S'initier au HTML et aux feuilles de style CSS Cours 5.
http 1.1.  connexion persistante Browser Mozilla Firefox Adresse ip.
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.
Struts.
Introduction au socle MEAN
S'initier au HTML et aux feuilles de style CSS Cours 5.
 Formulaires HTML : traiter les entrées utilisateur
Cours MIAGE « Architectures Orientées Services »Henry Boccon-GibodCours MIAGE « Architectures Orientées Services »Henry Boccon-Gibod 1 Architectures Orientées.
Sites Web interactifs 2010 / 2011 / S1 Bernhard Rieder.
Centralisation des sites web d’ELTA & Mise en place d’un serveur NAS
 Fonctions diverses, scripts PHP Variables de session Les sessions sous PHP permettent de conserver des données d'un utilisateur coté serveur, lors de.
Initiation au web dynamique Licence Professionnelle.
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 :
Séance /01/2006 Les technologies des sites dynamiques.
Les évolutions du WEB Des technologies,... et un peu plus...
Les Java Server Pages Dans ce chapitre, nous allons :
CPI/BTS 2 Programmation Web Les sites dynamiques Prog Web CPI/BTS2 – M. Dravet – 02/10/2003 Dernière modification: 02/10/2003.
APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Valérie Bellynck, Benjamin Brichet-Billet, Mazen.
1 Programmation Web Programmation WAMP/LAMP Premiers principes.
Transcription de la présentation:

Web dynamique : solutions Sessions sous HTTP 5èmes journées infoservices - INRA Web dynamique : solutions Sessions sous HTTP Pascal AUBRY IFSIC - Université de Rennes 1 http://perso.ifsic.univ-rennes1.fr/aubry/presentations/inra_infoservices2002

Web dynamique : les solutions de SSI à ASP, PHP, JSP

Déroulement d’une requête HTTP client serveur HTTP réponse démon HTTPD Demande de connexion Attente de la réponse du serveur Établissement de la connexion Envoi d’une requête (URL) Réponse du serveur Affichage de la réponse Fermeture de la connexion

Déroulement d’une requête HTTP client serveur protocole sans état réponse démon HTTPD Demande de connexion Attente de la réponse du serveur Établissement de la connexion Envoi d’une requête (URL) Réponse du serveur Affichage de la réponse Fermeture de la connexion

Délivrer un document statique

Délivrer un document statique système front-end démon HTTPD données système de fichiers

Délivrer un document statique système front-end démon HTTPD données système de fichiers

Web dynamique : qui fait quoi ? Le serveur exécute, le client reçoit SSI, XSSI, CGI, FastCGI, PHP, ASP, JSP indépendance vis-à-vis du client (navigateur) interactivité limitée Le serveur envoie, le client exécute JavaScript embarqué (DHTML), Applet Java dépendance vis-à-vis du client plus d’interactivité

SSI, XSSI : le premier pas vers la dynamique <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> <html> <head><title>Exemple XSSI</title></head> <body bgcolor="#FFFFFF"> <!--#config errmsg="erreur de syntaxe dans un (x)SSI" --> <!--#set var="x" value="test"--><!--#echo var="x"--><br> Fichier modifié le : <!--#echo var="LAST_MODIFIED" --> <br> Nom du serveur : <!--#echo var="SERVER_NAME" --> <br> <!--#if expr="$HTTP_USER_AGENT = 'Mozilla/2.0 (compatible; MSIE 3.01; Windows 95)'" --> Il est temps de se mettre à jour ! <!--#endif --> </body> </html>

CGI : Common Gateway Interface Un standard pour l’interface entre applications et serveurs d’informations Permet de passer des paramètres aux requêtes dans l’URL avec la méthode GET http://serv.dom.org/cgi-bin/script?arg1=val1&arg2=val2 comme des données avec la méthode POST Exécution d’un programme sur le serveur Les informations renvoyées au client sont statiques Des requêtes successives et l’adéquation des réponses en fonction des paramètres permettent le dynamisme

Exécution via HTTP d’un programme CGI système démon HTTPD front-end démon HTTPD fork, exec programme CGI chargement exécution terminaison système de fichiers

Exécution via HTTP d’un programme CGI système démon HTTPD front-end fork, exec programme CGI exécution chargement terminaison système de fichiers

FastCGI : une solution au coût des programmes externes système front-end démon HTTPD prog. FastCGI exécution système de fichiers

Scripts côté serveur : les leaders du marché Perl PHP (Php Hypertext Preprocessor) JSP (Java Server Pages) ASP (Active Server Pages) Zope

L’approche modulaire (PHP, Perl) système front-end démon HTTPD module exécution chargement système de fichiers

L’approche modulaire (PHP, Perl) système front-end démon HTTPD module exécution chargement système de fichiers

Perl Practical Extraction and Report Language Ressources illimitées Module d’Apache (mod_perl) ou stand-alone Multi-plateformes On aime ou on n’aime pas ;-)

PHP Le plus simple Un langage non généraliste (comme Java et Perl) mais néanmoins très riche (bibliothèques) Multi-plateformes Un produit libre

Java Les servlets JSP (Java Server Pages) Programme Java exécuté côté serveur Transformation en byte-code avant exécution Servies par un serveur dédié (ex : Tomcat) JSP (Java Server Pages) Pages HTML avec Java embarqué Transformation en Servlets

Le mécanisme JSP système démon HTTPD moteur JSP JVM Serveur Servlets front-end démon HTTPD test.jsp (HTML/Java) moteur JSP JVM Serveur Servlets test.jar (byte-code) test.java (Java)

Le mécanisme JSP système démon HTTPD moteur JSP JVM Serveur Servlets front-end démon HTTPD test.jsp (HTML/Java) moteur JSP JVM Serveur Servlets test.jar (byte-code) test.java (Java)

ASP Tourne nativement sur IIS (MicroSoft) JavaScript ou VBScript support langages compilés (VB, C++, C#) du déjà vu quelque part ;-) compilation intermédiaire JS et VBS mécanisme de cache des objets compilés portabilité (très) limitée

Zope Un environnement de développement Langage Python Liaison base de données Multi-plateformes

Un site web : des responsabilités, des métiers Technique (ingénieur) fonctionnement du service mise à disposition d’outils développement Éditoriale (rédacteur) mise à jour du contenu Graphique (infographiste) présentation du site Pénale (juriste)

Pourquoi un environnement de développement ? Pour gérer l’accès concurrent les droits sur les systèmes de fichiers sont insuffisants on utilise souvent une base de données et/ou une interface web Pour séparer les tâches graphisme, interfaçage Homme/Machine développement mise à jour du contenu Pour intégrer plusieurs technologies COM, CORBA, EJB, C/C++, Java, XML

Les environnements de développement BEA WebLogic (Java) Lutris Enhydra (Java, open source) Netscape Application Server Jbuilder (Java) Zope (Python) Midgard (PHP, open source) Allaire/Macromedia ColdFusion 5 (CFML) Vignette Content Suite V6 ...

Une comparaison rapide… [Java|VB]Script (+ASP) Java (+JSP) Perl (+mod_perl) PHP Python (+Zope) Installation Apprentissage Puissance Portabilité Outils Ressources …et subjective !

Comment choisir ? 1. Évaluer le ou les projets à mettre en œuvre 2. Évaluer ses moyens humains financiers 3. Tenir compte de l’existant les habitudes les compétences les préférences 4. Se faire soi-même une idée des produits

Web dynamique : les sessions Pour la programmation de véritables applications

Les cookies Permettent de véhiculer des informations entre client et serveur Caractéristiques : nom (UTILISATEUR) valeur (Pascal.Aubry) date de validité (Sunday, 04-Nov-01 23:12:40 GMT) domaine/serveur (www.zappeur.com) chemin (/public)

Les cookies serveur client requête réponse requête HTTP/1.1 200 OK Set-Cookie: h_cookie=00; path=/; \ expires=Friday, 09-Nov-01 05:23:12 GMT GET /fichier.html HTTP/1.1 requête réponse serveur client réponse requête GET /fichier2.html HTTP/1.1 Cookie: h_cookie=00

Les cookies (limitations) La taille 4Ko par cookie Le nombre 300 cookies par navigateur 20 cookies par serveur (pour un même client) Les clients peuvent « refuser » des cookies

Transmettre des variables d’état Objectif : propager des variables entre les requêtes identité du visiteur informations de connexion ... Le problème HTTP est un protocole sans état Les solutions paramètres CGI cachés cookies sessions

Solution 1 : paramètres CGI cachés Dans chaque formulaire et chaque lien hypertexte, on ajoute un (des) paramètre(s) caché(s) : <form ...> <input type="hidden" name="ident" value="durand"> <input type="hidden" name="pass" value="xx98yy"> ... </form> <a href="action.php?ident=durand&pass=xx98yy">texte</a> Problèmes : Les liens hypertextes et les grosses variables d’état on transmet toutes les variables d’état à chaque requête ça marche, mais ça va bien un moment… ;-)

Solution 2 : cookies À chaque changement d’une variable d’état, on envoie un cookie au client qui pourra nous le renvoyer lors de la requête suivante Intérêts : on ne transmet les variables que lorsqu’elles changent on ne fait pas de ré-écriture des formulaires et des liens Problèmes : nombre et longueur des cookies il faut encore le faire « à la main » certains ne supportent pas les cookies...

Solution 3 : les sessions Affectation d’un ID unique pour chaque visiteur non connu (sans ID) de forme aléatoire Liaison (identifiant - données sur le serveur) stockage mémoire, disque, base de données, ... format propriétaire, XML (WDDX), ... Transmission de l’identifiant par cookie et/ou ré-écriture (automatique)

Transmission des IDs de session Ré-écriture automatique : <form …> <input type="hidden" name="SESS_ID" value="5kj81l12yhs3"> ... </form> <a href="…?…&SESS_ID=5kj81l12yhs3"> <img src="…?…&SESS_ID=5kj81l12yhs3"> <frame src="…?…&SESS_ID=5kj81l12yhs3"> ...

Difficile d’en dire plus en 45mn ;-) http://perso.ifsic.univ-rennes1.fr/aubry/presentations/inra_infoservices2002