Telechargé par medboularess05

chapitre 1 Développement Web

DÉVELOPPEMENT WEB
CHAPITRE 1
PRINCIPE DES APPLICATIONS WEB
2
OBJECTIFS DU COURS
▪ Comprendre et connaître les principes des technologies utilisées dans le
développement d’applications liées au web.
INTRODUCTION
▪ Apparu avec Internet, le développement web fait
référence au processus d’écriture d’un site ou d’une
page web dans un langage technique. Il s’agit d’une
étape incontournable pour qu’un contenu soit mis en
ligne et atteigne ses lecteurs.
▪ Le développement web repose sur l’utilisation des
langages (HTML/CSS, JavaScript, PHP…) pour écrire
des programmes qui sont ensuite exécutés par les
ordinateurs. Les instructions sont mises en place sur
Internet et sont effectuées sur des serveurs.
4
LE PROTOCOLE HTTP
littéralement « protocole de
transfert hypertexte » est un protocole de communication client serveur développé pour le World Wide Web
▪ Le principe repose sur un couple requête/réponse
▪ L'Hypertext
Transfer
Protocol
HTTP,
5
LA REQUÊTE
▪ Une requête est un message qui va du client au serveur. Elle est structurée
de la manière suivante :
verbe
URI
Entêtes
corps
HTTP/X.X
LA REQUÊTE
▪ VERBE HTTP /file_path.html HTTP/X.X
▪ Verbe HTTP : Le verbe que vous utiliserez va déterminer l’interaction avec le serveur : est-ce
que vous allez récupérer un fichier, envoyer des données avec, modifier un objet existant…
▪ HTTP : la version d’HTTP que vous utilisez est toujours envoyée dans la première ligne de la
requête. La version que vous verrez le plus souvent est HTTP/1.1.
▪ Entêtes: Les en-têtes sont là pour donner des informations sur l’échange, souvent sur le
client qui fait la requête.
quelques exemples du contenu d'un en-tête :
▪ Date: Elle indique quand le client a effectué sa demande.
▪ EX: Date: Tue, 19 Jan 2016 18:15:41 GMT
▪ Referer: Définit l’URL de la page à partir de laquelle la ressource est demandée.
▪ Ex: Referer: https://www.google.fr/
▪ User agent: Indique l'application utilisée par le client, ainsi que sa version.
▪ Ex: User-Agent: Mozilla/5.0
▪ User language: Renseigne sur la langue utilisée par le client dans son application
▪ Ex: Accept-Language: en-us,en;q=0.8
7
LA REQUÊTE
▪ Corps: Après les en-têtes, vient le corps de la requête. Là-dedans vous aurez des détails
selon la nature de la requête. Par exemple, si une requête envoie des données à une API
avec GET les attributs seront envoyés dans ce corps.
8
LA REQUÊTE
9
TYPES DE REQUÊTES
HTTP/1.1 propose plusieurs types de requêtes:
• OPTIONS: il permet au client d’obtenir des informations sur les options
disponibles pour obtenir la ressource visée par la requête.
• GET: il permet au client d’obtenir la ressource visée par la requête.
• HEAD: ≈ GET sauf que la réponse ne devra jamais contenir de corps. Elle est
souvent utilisée pour tester la validité d’un lien.
• POST: Il permet d’envoyer un corps de requête contenant des informations que
le serveur doit prendre en compte et les considérer comme une nouvelle
ressource.
10
TYPES DE REQUÊTES
• PUT: ≈ POST La différence fondamentale est que ce type vise une requête
existante. Le serveur va modifier la ressource existante avec les informations
reçues.
• DELETE: il permet au client de supprimer la ressource visée par la requête.
• TRACE: il permet au client de recevoir de la part du serveur le contenu de la
requête telle qu’il l’a reçue tests ou diagnostics
• CONNECT: il permet au client de se connecter à un proxy permettant de faire
du tunneling (faire passer une connexion interdite par un pare-feu dans un
protocole HTTP presque toujours autorisé).
LA NOTION D'URL
• On a l'habitude d'accéder à un site Web en utilisant son adresse.
• Celle-ci est de la forme : http://www.monsite.fr/mondossier/mapage.html.
On peut décomposer cette adresse en plusieurs sous-parties.
• http:// signifie qu'on utilise le protocole HTTP.
• www.monsite.fr est le nom de domaine du site Web visité.
• /mondossier/mapage.html est le chemin de la ressource demandée au sein du
site.
• La majorité des serveurs Web est configurée pour renvoyer une page par défaut
(index.html, index.php, Default.aspx) lorsque le client ne précise pas explicitement
quelle page il souhaite récupérer
(exemples: http://www.monsite.fr ou http://www.monsite.fr/mondossier/).
•
• Une adresse Web telle que celle ci-dessus est ce qu'on appelle une URL ou Uniform
Resource Locator. Elle permet de décrire l'emplacement d'une ressource Web et le
moyen d'y accéder.
LA RÉPONSE
▪ Les réponses HTTP sont au format suivant :
HTTP/X.X
Code HTTP
Entêtes
corps
13
LA RÉPONSE
▪ La version HTTP: Indique la version d'HTTP utilisée.
▪ Le code réponse HTTP: Indique l'état de la réponse. La ressource a-t-elle
bien été trouvée ? Si non, pourquoi ? Ce code de 3 chiffres vous dira tout ce
qu’il faut savoir. Il y a à peu près 30 codes possibles qui couvrent plein de
situations.
▪ Les en-têtes: Ici vous trouverez des infos classiques (la date, etc.) comme
vous l'avez vu pour les requêtes. Dans les en-têtes réponses
spécifiquement, vous trouverez aussi les infos sur le serveur lui-même Ex:
son type ou sa localisation.
▪ Le corps: Le corps de la réponse contient des données pour les
utilisateurs, il peut prendre plusieurs types.
14
LA RÉPONSE
▪ Chaque réponse est associée à un code de statut sur trois digits. Il permet
d’indiquer au client l’état de la réponse. Le client peut ainsi réagir en
conséquence.
▪ Ces codes sont classés en 5 catégories.
Catégorie
Code
Description
Information
1xx
La requête est reçue par le serveur, le traitement se poursuit
Succès
2xx
La requête a été reçue, comprise et traitée par le serveur
Redirection
3xx
Des actions complémentaires sont nécessaires pour terminer
la requête
Erreur client
4xx
La requête ne peut pas être traitée par le serveur
Erreur serveur
5xx
Le serveur est mis en échec sur le traitement d’une requête
valide
15
LA RÉPONSE
Exemple de réponse
HTTP/1.1 200 OK
Date: Wed, 05 Oct 2016 19:44:50 GMT
Server: apache/2.4.7 (Ubuntu)
Last-Modified: Tue, 20 Sep 2016 06:56:13 GMT
Etag: "39b8-53ceaec9cf9c5-gzip"
Accept-Ranges: bytes
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Lenght: 4065
Keep-Alive: timeout=30, max=100
Connection: Keep-Alive
Content-Type: text/html
<!DOCTYPE html SYSTEM « about:legacy-compat">
<html lang="en">
…
</html>
16
ARCHITECTURE DES APPLICATIONS WEB
▪ Une application web est un ensemble de composants ou unité logique de
traitement.
▪ Objectif: modularité et réutilisation
▪ Trois couches applicatives composent ces composants
▪ Présentation: interaction avec l’utilisateur
▪ Traitement: traitement métiers
▪ Données: gestion des données ou des ressources
▪ Ces 3 niveaux peuvent être imbriques ou repartis de différentes manières
entre plusieurs machines physiques ou logiques
▪
Suivants les contraintes d’utilisation ou contraintes techniques, on distingue:
Architecture 2 tiers, Architecture 3 tiers, et Architectures n tiers.
17
ARCHITECTURE DES APPLICATIONS WEB
Architectures 2 tiers (Client-Serveur)
▪ La couche présentation et traitement sont sur le client
▪ Les données sont sur le serveur
▪ Contexte multi-utilisateurs avec accès aux données centralisées.
Données
Présentations
Traitements
18
ARCHITECTURE DES APPLICATIONS WEB
Architectures 3-tiers
▪ La couche présentation (IHM) est sur le client
▪ La couche métier ou les traitements sont pris par un serveur intermédiaire
▪ Les données (fichiers, fichiers xml, BDD,…..) sont sur un serveur de données
▪ Contexte multi-utilisateur: internet
Données
Traitements
Présentations
Serveur BDD Serveur Web
Application
19
ARCHITECTURE DES APPLICATIONS WEB
▪ la différence entre un serveur web et un serveur d’application ?
▪ Couche 1: Serveur web http
▪ Un serveur http, c’est un serveur qui gère exclusivement des requêtes HTTP. Il a pour
rôle d’intercepter les requêtes http, sur un port qui est par défaut 80, pour les traiter et
générer ensuite des réponses http. Tous les serveurs web embarquent un daemon
http(httpd) ou équivalent qui s’occupe de cette fonctionnalité. Exemple serveur
Apache.
httpd est le programme du serveur HTTP d'Apache. Il a été conçu pour fonctionner
sous forme de processus démon indépendant. Les daemons sont souvent démarrés
lors du chargement du système d'exploitation, et servent en général à répondre à
des requêtes du réseau,
20
ARCHITECTURE DES APPLICATIONS WEB
▪ Couche 2: Conteneur web
▪ Maintenant, on va étendre notre serveur web pour devenir un
conteneur web. Cette extension va permettre d’avoir la possibilité
d’exécuter des programmes écrits avec des langages de
programmation (java, php, C#, …) dans le serveur web.
▪ Par exemple: le serveur Tomcat n’est autre qu’un serveur Apache
couplé avec un moteur web java et, les serveurs tel-que easyPhp, wamp,
xamp ne sont que des serveurs apaches couplés avec un moteur web
php.
21
ARCHITECTURE DES APPLICATIONS WEB
▪ Couche 3: Serveur d’application
▪ Donc, il faut étendre encore plus le serveur Tomcat pour devenir un
vrai serveur d’application java j2ee. L’extension nécessaire est
composée de deux partie essentielles:
▪ Un conteneur EJB qui encapsule les traitements des entreprises JavaBeans.
22
ARCHITECTURE DES APPLICATIONS WEB
Architecture 3-tiers: Exemple
Niveau 2
Niveau 1
URL
Fichier php
Page web
Envoie page html
Serveur Appache/Tomcat
Parseur PHP
Interception, traitement
et génération page
HTML
Serveur BDD
Niveau 3
23
ARCHITECTURE DES APPLICATIONS WEB
Architecture n-tiers
▪ C’est une architecture N-tiers dans laquelle le traitements des données
contient lui-même plusieurs couches multipliant ainsi les tiers.
Traitements
Données
Présentations
Serveur web
Serveur BDD
Serveur Application
24
ARCHITECTURE DES APPLICATIONS WEB
Architecture N-tiers: Exemple
URL
Envoie page JSP
Page web
Génération et envoie
page JSP
Serveur web
Serveur Application
Serveur BDD
25