Communication sur le Web1 Communication sur le web Cours Web Services ISIMA 3F3.

23
Communication sur le Web 1 Communication sur le web Cours Web Services ISIMA 3F3

Transcript of Communication sur le Web1 Communication sur le web Cours Web Services ISIMA 3F3.

Page 1: Communication sur le Web1 Communication sur le web Cours Web Services ISIMA 3F3.

Communication sur le Web 1

Communication sur le web

Cours Web Services ISIMA 3F3

Page 2: Communication sur le Web1 Communication sur le web Cours Web Services ISIMA 3F3.

Communication sur le Web 2

Besoin

Systèmes d'information hétérogènes Windows / MAC / Unix ... Répartis aux quatre coins du monde

Communication entre eux

Exemples : Twitter, Facebook, Google...

Page 3: Communication sur le Web1 Communication sur le web Cours Web Services ISIMA 3F3.

Communication sur le Web 3

Communication

Communication Homme/Machine Interface de communication visuelle Affichage et saisie d'informations

Communication Machine/Machine Interface de communication numérique Envoi et réception d'informations entre systèmes

hétérogènes

Page 4: Communication sur le Web1 Communication sur le web Cours Web Services ISIMA 3F3.

Communication sur le Web 4

(URL) Uniform Resource Locator

Uniform Resource Identifier :

Uniform Resource Locator :http://www.google.fr

mailto:[email protected]?subject=Bonjour

Uniform Resource Name

http://fr.wikipedia.org/wiki/Schéma_d'URI

http://server:port/path/to/resource?p1=v1&p2=v2

Protocole Nom du serveur et port

Chemin de la ressource

Requête

Page 5: Communication sur le Web1 Communication sur le web Cours Web Services ISIMA 3F3.

Communication sur le Web 5

Le protocole HTTP (HyperText Transfer Protocol)

Permet d'échanger des informations et documents Toujours Request/Response Le protocole d'échange sur le Web Un protocole d'échange sur Internet

Page 6: Communication sur le Web1 Communication sur le web Cours Web Services ISIMA 3F3.

Communication sur le Web 6

HTTPGET /index.html HTTP/1.1

Host: www.example.com

HTTP/1.1 200 OKDate: Mon, 23 May 2005 22:38:34 GMTServer: Apache/1.3.27 (Unix)  (Red-Hat/Linux)Last-Modified: Wed, 08 Jan 2003 23:11:55 GMTAccept-Ranges: bytesContent-Length: 10Connection: closeContent-Type: text/html; charset=UTF-8

<html><body>Hello world!</body></html>

Page 7: Communication sur le Web1 Communication sur le web Cours Web Services ISIMA 3F3.

Communication sur le Web 7

Méthodes HTTP

GET : demande la représentation d'une ressource.

HEAD : idem, mais sans le contenu (horodatage)

POST : envoi de données pour traitement

PUT : mise à jour d'une ressource

DELETE : suppression d'une ressource

OPTIONS : liste les méthodes supportées par la ressource

Les navigateurs web utilisent GET, POST et parfois HEAD.

Page 8: Communication sur le Web1 Communication sur le web Cours Web Services ISIMA 3F3.

Communication sur le Web 8

Code retour HTTP

Ils permettent d'indiquer au user-agent comment la requête a été traitée et que faire de la réponse donnée.

Exemples :

• 200=ok, 201=created

• 301=moved, 307=temporary redirect

• 401=unauthorized, 404=not found

• 500=internal error, 501=not implemented

 Le bon emploi des codes de statut est très important aussi bien coté client que serveur.

A ne pas faire : répondre par 200 au lieu d'un 404 pour une ressource inexistante ...

Page 9: Communication sur le Web1 Communication sur le web Cours Web Services ISIMA 3F3.

Communication sur le Web 9

MIME (Multipurpose Internet Mail Extensions)

Permet de décrire le type de données échangées (ex : Content-Type: text/plain)lors d'une transaction HTTP (HTML, JPEG, PNG, XML, CSS, ZIP, ...).

 

A l'origine prévu pour SMTP. Il existe des identifiants standards :

text/plain, text/html, text/xml, text/css, text/javascript video/mpeg, video/mp4image/gif, image/png, image/jpegaudio/mpeg, audio/x-wavapplication/pdf, application/json, application/octet-stream, application/zip(...)

Page 10: Communication sur le Web1 Communication sur le web Cours Web Services ISIMA 3F3.

Communication sur le Web 10

Sécurité du protocole

Déclinaison TLS (SSL) du HTTP : HTTPS Transport Layer Security (Secure Sockets Layer)

Authentification du protocole : Basic : Login/Mot de passe transmis en clair sur le

réseau. Digest : Mot de passe codé, plus sécurisé.

Page 11: Communication sur le Web1 Communication sur le web Cours Web Services ISIMA 3F3.

Communication sur le Web 11

Page 12: Communication sur le Web1 Communication sur le web Cours Web Services ISIMA 3F3.

Communication sur le Web 12

HTTP : un protocole sans état

Stateless : deux requêtes consécutives sont sans lien pour HTTP.

Mécaniques de sessions : Coté serveur : HTTPSession, qui pour un

identifiant de session donné stocke des informations.

Coté client : cookie qui contient l'identifiant de session, et d'autres informations conservées côté client. Ces informations ne peuvent être critiques, car modifiables par le client.

Page 13: Communication sur le Web1 Communication sur le web Cours Web Services ISIMA 3F3.

Communication sur le Web 13

Construction de la réponse HTTP

Contenu statique (images, pages statiques, fichiers) :

L'accès à la ressource est fait en fonction de la requête HTTP demandée, le contenu est simplement copié

Contenu dynamique :

Les données sont calculées en fonction des paramètres en entrée et renvoyées au client.

C'est le serveur Web qui est configuré pour déterminer la nature du contenu.

Page 14: Communication sur le Web1 Communication sur le web Cours Web Services ISIMA 3F3.

Communication sur le Web 14

Exemple de requête HTTP

Station de travail

Internet

Serveur Web

Serveur d’application

Serveur de fichier

Page 15: Communication sur le Web1 Communication sur le web Cours Web Services ISIMA 3F3.

Communication sur le Web 15

Common Gateway Interface (CGI)

Protocole normalisé pour invoquer un programme externe (Perl, C++, Python, Ruby, ...)

Des variables d'environnement sont positionnées (IP client, chemin de requête, etc) puis le programme est invoqué.

Les flux standard sont utilisés (réponse, traitement POST, ...).

Cette solution est flexible mais a un coût certain : chaque requête entraine la création / destruction d'un processus.

Page 16: Communication sur le Web1 Communication sur le web Cours Web Services ISIMA 3F3.

Communication sur le Web 16

FastCGI

... même principe que CGI, à la différence que les processus restent en mémoire.

1 processus peut traiter plusieurs requêtes (multiplexing et connexions multiples).

Possibilité de lancer plusieurs processus "en cluster".

Utile dans de nombreux cas pour Ruby on Rails, Django, etc.

Page 17: Communication sur le Web1 Communication sur le web Cours Web Services ISIMA 3F3.

Communication sur le Web 17

Embarqué dans le serveur Web

Les programmes sont embarqués dans le serveur web :

mod_python

mod_perl

mod_php

Servlets

(...)

Approche relativement simple, mais :

• attention aux crashes / sécurité

• alourdit le serveur

• attention à la montée en charge

Page 18: Communication sur le Web1 Communication sur le web Cours Web Services ISIMA 3F3.

Communication sur le Web 18

Conteneur pour un serveur d’application

• Pour une technologie, fournit un ensemble d’outils permettant de gérer et de faciliter le développement de cette technologie

– Conteneur Web (gestion des servlets, URL…)

– Conteneur d’EJB (gestion des états, chargement…)

Page 19: Communication sur le Web1 Communication sur le web Cours Web Services ISIMA 3F3.

Communication sur le Web 19

Conteneur Web

Conteneur de servlet

• Tomcat est le plus connu.

• Glassfish, WebSphere, JBoss… embarquent un conteneur web.

Les servlets permettent le paramètrage et la gestion de :

• Mapping d'URL

• Filtres

• Authentification

• (…)

Page 20: Communication sur le Web1 Communication sur le web Cours Web Services ISIMA 3F3.

Communication sur le Web 20

Hello World

Page 21: Communication sur le Web1 Communication sur le web Cours Web Services ISIMA 3F3.

Communication sur le Web 21

Configuration des servlets : web.xml

Page 22: Communication sur le Web1 Communication sur le web Cours Web Services ISIMA 3F3.

Communication sur le Web 22

Java Server Pages (JSP)

Une JSP est une page convertie automatiquement par le conteneur web en Servlet.

Deux générations :• JSP : On met du code HTML et du Java

ensemble, le Java dans des balises<%= Heure : new Date() %>A éviter !!

• JSP 2 : Utilisation d’expression language et taglib pour l’accès dynamique aux données, pas de Java dans les pages.

Page 23: Communication sur le Web1 Communication sur le web Cours Web Services ISIMA 3F3.

Communication sur le Web 23

Architecture Modèle-Vue-Contrôleur

Séparation de ces trois concepts dans le code, afin de les gérer indépendamment :

– Modèle : Les données sont gérées par une couche à part. Une base de données est contrôlée par une couche spécifique (DAO, JPA), les requêtes ne sont pas dans les pages.

– Vue : Les pages à afficher ne contiennent que l’affichage et les données concernées.

– Contrôleur : Définit le routage des pages, en fonction de la requête en entrée.