Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
emna.kallel@enetcom.usf.tn
• Plateforme de base pour écrire une application • Situés dans le répertoire bin du JDK
Java • javac.exe : compiler les programmes en
• Deux installations faites en parallèle: transformant le code Java en bytecode
1) l’installation du JDK • java.exe et javaw.exe : exécuter des
2) L’installation du JRE applications Java
• javadoc.exe : générer la documentation Java
à partir des commentaires écrits dans le
programme.
3 4
La plateforme Java EE Architecture Java EE
• JavaEE est une architecture 3-tiers :
• Java EE est basée sur le langage de développement • Tiers présentation : affichage des données
Java. • Tiers métier: gestion du métier de l’application
• Java permet de développer des applications. • Tiers donnée: persistance des données
5 6
Serveur Web Serveur d’application
Réponse 1 Temp
Client Requête 2 Serveur
Réponse 2
Fermeture connexion TCP/IP 10
Les URI (Uniform Resource Identifier) Les URI (Uniform Resource Identifier)
• Chaîne de caractères identifiant une ressource
• Elle permet de localiser une ressource (URL)
• Nommer une ressource (URN)
• Faire les deux en même temps
• Le terme URL est utilisé dans le développement
Web pour identifier et localiser une ressource
• Structure d’une URL HTTP
"http://"+hôte+[":"+port] ["/"+ chemin ressource+["? "+paramètres]]
11 12
La requête
Requête/réponse http Parties obligatoires Partie optionnelle
• Type de la requête
• Host : nom du domaine du serveur auquel on envoie la requête, le port s’il est
différent de 80
• Connection : comportement de la connexion
• Cache-control: Cette propriété indique au cache du serveur s’il doit recharger la
page à chaque reprise ou suivant un délai précis
• Upgrade-Insecure-request: Indique au client que l’on préfèrera toujours une
reconnection HTTPS si jamais celui-ci est en train de migrer entre HTTP et HTTPS
• User-agent: Il s’agit de la chaine de caractère permettant d’identifier
formellement le navigateur qui a généré la requête; on y trouve sa version son
développeur …
• Accept: Indique le type de contenu (de média) que le client est en mesure
d’accepter.
13 14
15 16
Les types de requêtes La réponse(Structure)
Parties obligatoires Partie optionnelle
HTTP/1.1 propose plusieurs types de requêtes.
•GET permet de demander une ressource sans la modifier ;
•POST permet de transmettre des données dans le but de Entête de réponse Ligne vide Corps de réponse
manipuler une ressource (formulaire en ligne);
•PUT permet de remplacer ou d’ajouter une ressource sur le HTTP/1.1 200 OK
serveur ; Date: Wed, 05 Oct 2016 19:44:50 GMT
Server: apache/2.4.7 (Ubuntu)
•DELETE permet de supprimer une ressource du serveur ; Last-Modified: Tue, 20 Sep 2016 06:56:13 GMT
•HEAD permet de demander des informations sur la ressource sans Etag: "39b8-53ceaec9cf9c5-gzip"
demander la ressource elle-même ; Accept-Ranges: bytes
Vary: Accept-Encoding
•PATCH permet de modifier partiellement une ressource ; Content-Encoding: gzip
•OPTIONS permet d’obtenir les options de communication d’une Content-Lenght: 4065
ressource ou du serveur (méthodes utilisées) ; Keep-Alive: timeout=30, max=100
Connection: Keep-Alive
•CONNECT permet d’utiliser un proxy comme un tunnel de Content-Type: text/html
communication (faire passer une connexion interdite par un pare-
feu dans un protocole HTTP presque toujours autorisé).; <!DOCTYPE html SYSTEM « about:legacy-compat">
<html lang="en">
•TRACE permet de tester et d’effectuer un diagnostic de la …
connexion et demandant au serveur de retourner la requête reçue.
17
</html> 18
- L’interprétation textuelle du code de statut (ok) 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
2) Autres attributs de réponse : permettent au serveur de passer des informations
Redirection 3xx Des actions complémentaires sont nécessaires pour terminer la
complémentaires. requête
• Le corps de la réponse: partie utilisée par le client pour l’affichage, il peut prendre Erreur client 4xx La requête ne peut pas être traitée par le serveur
plusieurs types. Erreur serveur 5xx Le serveur est mis en échec sur le traitement d’une requête
valide
19 20
La réponse(Les codes du statut) La réponse(Les codes du statut)
Code Libelle Description
Code Libelle Description
100 Continue Continue
400 Bad Request Req incorrecte
101 Switching Protocols Changement de protocole
401 Unauthorized Le client doit s’authentifier pour accéder à la ressource
200 OK OK
403 Forbidden Le client n’a pas le droit d’accéder à la ressource
201 Created Créé
404 Not Found Ressource non trouvée
202 Accepted Acceptée
405 Method Not Allowed Type de req non autorisé
204 No Content Req traitée avec succès mais aucune info en retour
500 Internal Server Error Le serveur a rencontré une erreur inattendue
206 Partial Content Contenu partiel
501 Not Implemented Le serveur ne sait pas traiter le type de req pour la
301 Moved Permanently La ressource a changé d’adresse de façon permanente
ressource visée
302 Found La ressource a changé d’adresse temporairement 503 Service Unavailable Le serveur n’est pas capable de répondre à cause d’une
304 Not modified La ressource n’a as changé. Le client peut utiliser la surcharge temporaire ou d’une maintenance
version en cache
21 22
23 24
La gestion du cache La gestion du cache
Attributs Description • Lors des requêtes suivantes vers la même ressource, le mécanisme de
Cache-Control Plusieurs valeurs peuvent êtres attribuées: cache peut entrer en action
private : la réponse ne peut pas être mise en cache par
1) S’il n’y avait pas de cache possible la req est envoyée comme si c’était
un intermédiaire partagé par plusieurs clients
public : la réponse peut être mise en cache par
le premier appel
n’importe quel intermédiaire 2) Dans le cas où les attributs de réponse indiquaient une possible mise en
max-age : indiquer le temps en secondes durant le quel cache :
la ressource en cache est d’actualité 2.1) Le client peut utiliser l’attribut Expires ou la directive max-age (Cache-
Pragma Indiquer que la ressource ne doit pas être en cache Control) de la ressource mise en cache s’ils sont renseignés. Si la
Etag Associer un id à la ressource qui change à chaque fois où ressource est toujours d’actualité aucune requête n’est effectuée.
la ressource change. 2.2) Le client peut utiliser la valeur des attributs Etag et Last-Modified
Expires Définir une date de fin de validité de la ressource mise pour interroger le serveur pour voir s’il a une ressource plus récente.
en cache
Last-Modified Définir la date de dernière modification de la ressource
25 26
La gestion du cache
La requête est enrichie par les attributs suivants
Attribut Description
27 28
Gestion de l’authentification Gestion de l’authentification
• Lorsque une ressource est protégée et nécessite une authentification
auprès du serveur pour pouvoir y accéder, un couple d’attributs est Remarque
utilisé.
• Lorsque vous transmettez des données sensibles sur vos sites
• L’attribut WWW.Authenticate demandant au client de s’authentifier
(Login/Pwd) favoris et que ces derniers n’utilisent pas HTTPS (la version
• Login/Pwd envoyés via Authorization au travers d’une nouvelle req sécurisée du protocole HTTP) cela représente un réel danger,
visant la même ressource.
• Si la req doit passer par un proxy pour accéder à la ressource le car toute requête peut être interceptée ! et dans une requête
proxy demande au client de s’authentifier (selon sa configuration) POST de transmission de formulaire vos données sont lisibles!
Proxy-Authenticate et Proxy-Authorization
29 30
34
37 38
41 42
Serveur
Clients
Requête HTTP
Contrôleur
(Servlets)
Réponse HTTP
Vue Modèle
(pages JSP) (objets Java)
43
L’écosystème JAVA
Chapitre 1 • Java : plus que 20 ans !
• Sun Microsystems Oracle
Introduction au Java EE
• Langage orienté objet
• Java SE + Java EE + JRE (JVM)
Emna KALLEL
emna.kallel@enetcom.usf.tn
• Plateforme de base pour écrire une application • Situés dans le répertoire bin du JDK
Java • javac.exe : compiler les programmes en
• Deux installations faites en parallèle: transformant le code Java en bytecode
1) l’installation du JDK • java.exe et javaw.exe : exécuter des
2) L’installation du JRE applications Java
• javadoc.exe : générer la documentation Java
à partir des commentaires écrits dans le
programme.
3 4
La plateforme Java EE Architecture Java EE
• JavaEE est une architecture 3-tiers :
• Java EE est basée sur le langage de développement • Tiers présentation : affichage des données
Java. • Tiers métier: gestion du métier de l’application
• Java permet de développer des applications. • Tiers donnée: persistance des données
5 6
Serveur Web Serveur d’application
Réponse 1 Temp
Client Requête 2 Serveur
Réponse 2
Fermeture connexion TCP/IP 10
Les URI (Uniform Resource Identifier) Les URI (Uniform Resource Identifier)
• Chaîne de caractères identifiant une ressource
• Elle permet de localiser une ressource (URL)
• Nommer une ressource (URN)
• Faire les deux en même temps
• Le terme URL est utilisé dans le développement
Web pour identifier et localiser une ressource
• Structure d’une URL HTTP
"http://"+hôte+[":"+port] ["/"+ chemin ressource+["? "+paramètres]]
11 12
La requête
Requête/réponse http Parties obligatoires Partie optionnelle
• Type de la requête
• Host : nom du domaine du serveur auquel on envoie la requête, le port s’il est
différent de 80
• Connection : comportement de la connexion
• Cache-control: Cette propriété indique au cache du serveur s’il doit recharger la
page à chaque reprise ou suivant un délai précis
• Upgrade-Insecure-request: Indique au client que l’on préfèrera toujours une
reconnection HTTPS si jamais celui-ci est en train de migrer entre HTTP et HTTPS
• User-agent: Il s’agit de la chaine de caractère permettant d’identifier
formellement le navigateur qui a généré la requête; on y trouve sa version son
développeur …
• Accept: Indique le type de contenu (de média) que le client est en mesure
d’accepter.
13 14
15 16
Les types de requêtes La réponse(Structure)
Parties obligatoires Partie optionnelle
HTTP/1.1 propose plusieurs types de requêtes.
•GET permet de demander une ressource sans la modifier ;
•POST permet de transmettre des données dans le but de Entête de réponse Ligne vide Corps de réponse
manipuler une ressource (formulaire en ligne);
•PUT permet de remplacer ou d’ajouter une ressource sur le HTTP/1.1 200 OK
serveur ; Date: Wed, 05 Oct 2016 19:44:50 GMT
Server: apache/2.4.7 (Ubuntu)
•DELETE permet de supprimer une ressource du serveur ; Last-Modified: Tue, 20 Sep 2016 06:56:13 GMT
•HEAD permet de demander des informations sur la ressource sans Etag: "39b8-53ceaec9cf9c5-gzip"
demander la ressource elle-même ; Accept-Ranges: bytes
Vary: Accept-Encoding
•PATCH permet de modifier partiellement une ressource ; Content-Encoding: gzip
•OPTIONS permet d’obtenir les options de communication d’une Content-Lenght: 4065
ressource ou du serveur (méthodes utilisées) ; Keep-Alive: timeout=30, max=100
Connection: Keep-Alive
•CONNECT permet d’utiliser un proxy comme un tunnel de Content-Type: text/html
communication (faire passer une connexion interdite par un pare-
feu dans un protocole HTTP presque toujours autorisé).; <!DOCTYPE html SYSTEM « about:legacy-compat">
<html lang="en">
•TRACE permet de tester et d’effectuer un diagnostic de la …
connexion et demandant au serveur de retourner la requête reçue.
17
</html> 18
- L’interprétation textuelle du code de statut (ok) 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
2) Autres attributs de réponse : permettent au serveur de passer des informations
Redirection 3xx Des actions complémentaires sont nécessaires pour terminer la
complémentaires. requête
• Le corps de la réponse: partie utilisée par le client pour l’affichage, il peut prendre Erreur client 4xx La requête ne peut pas être traitée par le serveur
plusieurs types. Erreur serveur 5xx Le serveur est mis en échec sur le traitement d’une requête
valide
19 20
La réponse(Les codes du statut) La réponse(Les codes du statut)
Code Libelle Description
Code Libelle Description
100 Continue Continue
400 Bad Request Req incorrecte
101 Switching Protocols Changement de protocole
401 Unauthorized Le client doit s’authentifier pour accéder à la ressource
200 OK OK
403 Forbidden Le client n’a pas le droit d’accéder à la ressource
201 Created Créé
404 Not Found Ressource non trouvée
202 Accepted Acceptée
405 Method Not Allowed Type de req non autorisé
204 No Content Req traitée avec succès mais aucune info en retour
500 Internal Server Error Le serveur a rencontré une erreur inattendue
206 Partial Content Contenu partiel
501 Not Implemented Le serveur ne sait pas traiter le type de req pour la
301 Moved Permanently La ressource a changé d’adresse de façon permanente
ressource visée
302 Found La ressource a changé d’adresse temporairement 503 Service Unavailable Le serveur n’est pas capable de répondre à cause d’une
304 Not modified La ressource n’a as changé. Le client peut utiliser la surcharge temporaire ou d’une maintenance
version en cache
21 22
23 24
La gestion du cache La gestion du cache
Attributs Description • Lors des requêtes suivantes vers la même ressource, le mécanisme de
Cache-Control Plusieurs valeurs peuvent êtres attribuées: cache peut entrer en action
private : la réponse ne peut pas être mise en cache par
1) S’il n’y avait pas de cache possible la req est envoyée comme si c’était
un intermédiaire partagé par plusieurs clients
public : la réponse peut être mise en cache par
le premier appel
n’importe quel intermédiaire 2) Dans le cas où les attributs de réponse indiquaient une possible mise en
max-age : indiquer le temps en secondes durant le quel cache :
la ressource en cache est d’actualité 2.1) Le client peut utiliser l’attribut Expires ou la directive max-age (Cache-
Pragma Indiquer que la ressource ne doit pas être en cache Control) de la ressource mise en cache s’ils sont renseignés. Si la
Etag Associer un id à la ressource qui change à chaque fois où ressource est toujours d’actualité aucune requête n’est effectuée.
la ressource change. 2.2) Le client peut utiliser la valeur des attributs Etag et Last-Modified
Expires Définir une date de fin de validité de la ressource mise pour interroger le serveur pour voir s’il a une ressource plus récente.
en cache
Last-Modified Définir la date de dernière modification de la ressource
25 26
La gestion du cache
La requête est enrichie par les attributs suivants
Attribut Description
27 28
Gestion de l’authentification Gestion de l’authentification
• Lorsque une ressource est protégée et nécessite une authentification
auprès du serveur pour pouvoir y accéder, un couple d’attributs est Remarque
utilisé.
• Lorsque vous transmettez des données sensibles sur vos sites
• L’attribut WWW.Authenticate demandant au client de s’authentifier
(Login/Pwd) favoris et que ces derniers n’utilisent pas HTTPS (la version
• Login/Pwd envoyés via Authorization au travers d’une nouvelle req sécurisée du protocole HTTP) cela représente un réel danger,
visant la même ressource.
• Si la req doit passer par un proxy pour accéder à la ressource le car toute requête peut être interceptée ! et dans une requête
proxy demande au client de s’authentifier (selon sa configuration) POST de transmission de formulaire vos données sont lisibles!
Proxy-Authenticate et Proxy-Authorization
29 30
34
37 38
41 42
Serveur
Clients
Requête HTTP
Contrôleur
(Servlets)
Réponse HTTP
Vue Modèle
(pages JSP) (objets Java)
43
L’écosystème JAVA
Chapitre 1 • Java : plus que 20 ans !
• Sun Microsystems Oracle
Introduction au Java EE
• Langage orienté objet
• Java SE + Java EE + JRE (JVM)
Emna KALLEL
emna.kallel@enetcom.usf.tn
• Plateforme de base pour écrire une application • Situés dans le répertoire bin du JDK
Java • javac.exe : compiler les programmes en
• Deux installations faites en parallèle: transformant le code Java en bytecode
1) l’installation du JDK • java.exe et javaw.exe : exécuter des
2) L’installation du JRE applications Java
• javadoc.exe : générer la documentation Java
à partir des commentaires écrits dans le
programme.
3 4
La plateforme Java EE Architecture Java EE
• JavaEE est une architecture 3-tiers :
• Java EE est basée sur le langage de développement • Tiers présentation : affichage des données
Java. • Tiers métier: gestion du métier de l’application
• Java permet de développer des applications. • Tiers donnée: persistance des données
5 6
Serveur Web Serveur d’application
Réponse 1 Temp
Client Requête 2 Serveur
Réponse 2
Fermeture connexion TCP/IP 10
Les URI (Uniform Resource Identifier) Les URI (Uniform Resource Identifier)
• Chaîne de caractères identifiant une ressource
• Elle permet de localiser une ressource (URL)
• Nommer une ressource (URN)
• Faire les deux en même temps
• Le terme URL est utilisé dans le développement
Web pour identifier et localiser une ressource
• Structure d’une URL HTTP
"http://"+hôte+[":"+port] ["/"+ chemin ressource+["? "+paramètres]]
11 12
La requête
Requête/réponse http Parties obligatoires Partie optionnelle
• Type de la requête
• Host : nom du domaine du serveur auquel on envoie la requête, le port s’il est
différent de 80
• Connection : comportement de la connexion
• Cache-control: Cette propriété indique au cache du serveur s’il doit recharger la
page à chaque reprise ou suivant un délai précis
• Upgrade-Insecure-request: Indique au client que l’on préfèrera toujours une
reconnection HTTPS si jamais celui-ci est en train de migrer entre HTTP et HTTPS
• User-agent: Il s’agit de la chaine de caractère permettant d’identifier
formellement le navigateur qui a généré la requête; on y trouve sa version son
développeur …
• Accept: Indique le type de contenu (de média) que le client est en mesure
d’accepter.
13 14
15 16
Les types de requêtes La réponse(Structure)
Parties obligatoires Partie optionnelle
HTTP/1.1 propose plusieurs types de requêtes.
•GET permet de demander une ressource sans la modifier ;
•POST permet de transmettre des données dans le but de Entête de réponse Ligne vide Corps de réponse
manipuler une ressource (formulaire en ligne);
•PUT permet de remplacer ou d’ajouter une ressource sur le HTTP/1.1 200 OK
serveur ; Date: Wed, 05 Oct 2016 19:44:50 GMT
Server: apache/2.4.7 (Ubuntu)
•DELETE permet de supprimer une ressource du serveur ; Last-Modified: Tue, 20 Sep 2016 06:56:13 GMT
•HEAD permet de demander des informations sur la ressource sans Etag: "39b8-53ceaec9cf9c5-gzip"
demander la ressource elle-même ; Accept-Ranges: bytes
Vary: Accept-Encoding
•PATCH permet de modifier partiellement une ressource ; Content-Encoding: gzip
•OPTIONS permet d’obtenir les options de communication d’une Content-Lenght: 4065
ressource ou du serveur (méthodes utilisées) ; Keep-Alive: timeout=30, max=100
Connection: Keep-Alive
•CONNECT permet d’utiliser un proxy comme un tunnel de Content-Type: text/html
communication (faire passer une connexion interdite par un pare-
feu dans un protocole HTTP presque toujours autorisé).; <!DOCTYPE html SYSTEM « about:legacy-compat">
<html lang="en">
•TRACE permet de tester et d’effectuer un diagnostic de la …
connexion et demandant au serveur de retourner la requête reçue.
17
</html> 18
- L’interprétation textuelle du code de statut (ok) 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
2) Autres attributs de réponse : permettent au serveur de passer des informations
Redirection 3xx Des actions complémentaires sont nécessaires pour terminer la
complémentaires. requête
• Le corps de la réponse: partie utilisée par le client pour l’affichage, il peut prendre Erreur client 4xx La requête ne peut pas être traitée par le serveur
plusieurs types. Erreur serveur 5xx Le serveur est mis en échec sur le traitement d’une requête
valide
19 20
La réponse(Les codes du statut) La réponse(Les codes du statut)
Code Libelle Description
Code Libelle Description
100 Continue Continue
400 Bad Request Req incorrecte
101 Switching Protocols Changement de protocole
401 Unauthorized Le client doit s’authentifier pour accéder à la ressource
200 OK OK
403 Forbidden Le client n’a pas le droit d’accéder à la ressource
201 Created Créé
404 Not Found Ressource non trouvée
202 Accepted Acceptée
405 Method Not Allowed Type de req non autorisé
204 No Content Req traitée avec succès mais aucune info en retour
500 Internal Server Error Le serveur a rencontré une erreur inattendue
206 Partial Content Contenu partiel
501 Not Implemented Le serveur ne sait pas traiter le type de req pour la
301 Moved Permanently La ressource a changé d’adresse de façon permanente
ressource visée
302 Found La ressource a changé d’adresse temporairement 503 Service Unavailable Le serveur n’est pas capable de répondre à cause d’une
304 Not modified La ressource n’a as changé. Le client peut utiliser la surcharge temporaire ou d’une maintenance
version en cache
21 22
23 24
La gestion du cache La gestion du cache
Attributs Description • Lors des requêtes suivantes vers la même ressource, le mécanisme de
Cache-Control Plusieurs valeurs peuvent êtres attribuées: cache peut entrer en action
private : la réponse ne peut pas être mise en cache par
1) S’il n’y avait pas de cache possible la req est envoyée comme si c’était
un intermédiaire partagé par plusieurs clients
public : la réponse peut être mise en cache par
le premier appel
n’importe quel intermédiaire 2) Dans le cas où les attributs de réponse indiquaient une possible mise en
max-age : indiquer le temps en secondes durant le quel cache :
la ressource en cache est d’actualité 2.1) Le client peut utiliser l’attribut Expires ou la directive max-age (Cache-
Pragma Indiquer que la ressource ne doit pas être en cache Control) de la ressource mise en cache s’ils sont renseignés. Si la
Etag Associer un id à la ressource qui change à chaque fois où ressource est toujours d’actualité aucune requête n’est effectuée.
la ressource change. 2.2) Le client peut utiliser la valeur des attributs Etag et Last-Modified
Expires Définir une date de fin de validité de la ressource mise pour interroger le serveur pour voir s’il a une ressource plus récente.
en cache
Last-Modified Définir la date de dernière modification de la ressource
25 26
La gestion du cache
La requête est enrichie par les attributs suivants
Attribut Description
27 28
Gestion de l’authentification Gestion de l’authentification
• Lorsque une ressource est protégée et nécessite une authentification
auprès du serveur pour pouvoir y accéder, un couple d’attributs est Remarque
utilisé.
• Lorsque vous transmettez des données sensibles sur vos sites
• L’attribut WWW.Authenticate demandant au client de s’authentifier
(Login/Pwd) favoris et que ces derniers n’utilisent pas HTTPS (la version
• Login/Pwd envoyés via Authorization au travers d’une nouvelle req sécurisée du protocole HTTP) cela représente un réel danger,
visant la même ressource.
• Si la req doit passer par un proxy pour accéder à la ressource le car toute requête peut être interceptée ! et dans une requête
proxy demande au client de s’authentifier (selon sa configuration) POST de transmission de formulaire vos données sont lisibles!
Proxy-Authenticate et Proxy-Authorization
29 30
34
37 38
41 42
Serveur
Clients
Requête HTTP
Contrôleur
(Servlets)
Réponse HTTP
Vue Modèle
(pages JSP) (objets Java)
43
L’écosystème JAVA
Chapitre 1 • Java : plus que 20 ans !
• Sun Microsystems Oracle
Introduction au Java EE
• Langage orienté objet
• Java SE + Java EE + JRE (JVM)
Emna KALLEL
emna.kallel@enetcom.usf.tn
• Plateforme de base pour écrire une application • Situés dans le répertoire bin du JDK
Java • javac.exe : compiler les programmes en
• Deux installations faites en parallèle: transformant le code Java en bytecode
1) l’installation du JDK • java.exe et javaw.exe : exécuter des
2) L’installation du JRE applications Java
• javadoc.exe : générer la documentation Java
à partir des commentaires écrits dans le
programme.
3 4
La plateforme Java EE Architecture Java EE
• JavaEE est une architecture 3-tiers :
• Java EE est basée sur le langage de développement • Tiers présentation : affichage des données
Java. • Tiers métier: gestion du métier de l’application
• Java permet de développer des applications. • Tiers donnée: persistance des données
5 6
Serveur Web Serveur d’application
Réponse 1 Temp
Client Requête 2 Serveur
Réponse 2
Fermeture connexion TCP/IP 10
Les URI (Uniform Resource Identifier) Les URI (Uniform Resource Identifier)
• Chaîne de caractères identifiant une ressource
• Elle permet de localiser une ressource (URL)
• Nommer une ressource (URN)
• Faire les deux en même temps
• Le terme URL est utilisé dans le développement
Web pour identifier et localiser une ressource
• Structure d’une URL HTTP
"http://"+hôte+[":"+port] ["/"+ chemin ressource+["? "+paramètres]]
11 12
La requête
Requête/réponse http Parties obligatoires Partie optionnelle
• Type de la requête
• Host : nom du domaine du serveur auquel on envoie la requête, le port s’il est
différent de 80
• Connection : comportement de la connexion
• Cache-control: Cette propriété indique au cache du serveur s’il doit recharger la
page à chaque reprise ou suivant un délai précis
• Upgrade-Insecure-request: Indique au client que l’on préfèrera toujours une
reconnection HTTPS si jamais celui-ci est en train de migrer entre HTTP et HTTPS
• User-agent: Il s’agit de la chaine de caractère permettant d’identifier
formellement le navigateur qui a généré la requête; on y trouve sa version son
développeur …
• Accept: Indique le type de contenu (de média) que le client est en mesure
d’accepter.
13 14
15 16
Les types de requêtes La réponse(Structure)
Parties obligatoires Partie optionnelle
HTTP/1.1 propose plusieurs types de requêtes.
•GET permet de demander une ressource sans la modifier ;
•POST permet de transmettre des données dans le but de Entête de réponse Ligne vide Corps de réponse
manipuler une ressource (formulaire en ligne);
•PUT permet de remplacer ou d’ajouter une ressource sur le HTTP/1.1 200 OK
serveur ; Date: Wed, 05 Oct 2016 19:44:50 GMT
Server: apache/2.4.7 (Ubuntu)
•DELETE permet de supprimer une ressource du serveur ; Last-Modified: Tue, 20 Sep 2016 06:56:13 GMT
•HEAD permet de demander des informations sur la ressource sans Etag: "39b8-53ceaec9cf9c5-gzip"
demander la ressource elle-même ; Accept-Ranges: bytes
Vary: Accept-Encoding
•PATCH permet de modifier partiellement une ressource ; Content-Encoding: gzip
•OPTIONS permet d’obtenir les options de communication d’une Content-Lenght: 4065
ressource ou du serveur (méthodes utilisées) ; Keep-Alive: timeout=30, max=100
Connection: Keep-Alive
•CONNECT permet d’utiliser un proxy comme un tunnel de Content-Type: text/html
communication (faire passer une connexion interdite par un pare-
feu dans un protocole HTTP presque toujours autorisé).; <!DOCTYPE html SYSTEM « about:legacy-compat">
<html lang="en">
•TRACE permet de tester et d’effectuer un diagnostic de la …
connexion et demandant au serveur de retourner la requête reçue.
17
</html> 18
- L’interprétation textuelle du code de statut (ok) 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
2) Autres attributs de réponse : permettent au serveur de passer des informations
Redirection 3xx Des actions complémentaires sont nécessaires pour terminer la
complémentaires. requête
• Le corps de la réponse: partie utilisée par le client pour l’affichage, il peut prendre Erreur client 4xx La requête ne peut pas être traitée par le serveur
plusieurs types. Erreur serveur 5xx Le serveur est mis en échec sur le traitement d’une requête
valide
19 20
La réponse(Les codes du statut) La réponse(Les codes du statut)
Code Libelle Description
Code Libelle Description
100 Continue Continue
400 Bad Request Req incorrecte
101 Switching Protocols Changement de protocole
401 Unauthorized Le client doit s’authentifier pour accéder à la ressource
200 OK OK
403 Forbidden Le client n’a pas le droit d’accéder à la ressource
201 Created Créé
404 Not Found Ressource non trouvée
202 Accepted Acceptée
405 Method Not Allowed Type de req non autorisé
204 No Content Req traitée avec succès mais aucune info en retour
500 Internal Server Error Le serveur a rencontré une erreur inattendue
206 Partial Content Contenu partiel
501 Not Implemented Le serveur ne sait pas traiter le type de req pour la
301 Moved Permanently La ressource a changé d’adresse de façon permanente
ressource visée
302 Found La ressource a changé d’adresse temporairement 503 Service Unavailable Le serveur n’est pas capable de répondre à cause d’une
304 Not modified La ressource n’a as changé. Le client peut utiliser la surcharge temporaire ou d’une maintenance
version en cache
21 22
23 24
La gestion du cache La gestion du cache
Attributs Description • Lors des requêtes suivantes vers la même ressource, le mécanisme de
Cache-Control Plusieurs valeurs peuvent êtres attribuées: cache peut entrer en action
private : la réponse ne peut pas être mise en cache par
1) S’il n’y avait pas de cache possible la req est envoyée comme si c’était
un intermédiaire partagé par plusieurs clients
public : la réponse peut être mise en cache par
le premier appel
n’importe quel intermédiaire 2) Dans le cas où les attributs de réponse indiquaient une possible mise en
max-age : indiquer le temps en secondes durant le quel cache :
la ressource en cache est d’actualité 2.1) Le client peut utiliser l’attribut Expires ou la directive max-age (Cache-
Pragma Indiquer que la ressource ne doit pas être en cache Control) de la ressource mise en cache s’ils sont renseignés. Si la
Etag Associer un id à la ressource qui change à chaque fois où ressource est toujours d’actualité aucune requête n’est effectuée.
la ressource change. 2.2) Le client peut utiliser la valeur des attributs Etag et Last-Modified
Expires Définir une date de fin de validité de la ressource mise pour interroger le serveur pour voir s’il a une ressource plus récente.
en cache
Last-Modified Définir la date de dernière modification de la ressource
25 26
La gestion du cache
La requête est enrichie par les attributs suivants
Attribut Description
27 28
Gestion de l’authentification Gestion de l’authentification
• Lorsque une ressource est protégée et nécessite une authentification
auprès du serveur pour pouvoir y accéder, un couple d’attributs est Remarque
utilisé.
• Lorsque vous transmettez des données sensibles sur vos sites
• L’attribut WWW.Authenticate demandant au client de s’authentifier
(Login/Pwd) favoris et que ces derniers n’utilisent pas HTTPS (la version
• Login/Pwd envoyés via Authorization au travers d’une nouvelle req sécurisée du protocole HTTP) cela représente un réel danger,
visant la même ressource.
• Si la req doit passer par un proxy pour accéder à la ressource le car toute requête peut être interceptée ! et dans une requête
proxy demande au client de s’authentifier (selon sa configuration) POST de transmission de formulaire vos données sont lisibles!
Proxy-Authenticate et Proxy-Authorization
29 30
34
37 38
41 42
Serveur
Clients
Requête HTTP
Contrôleur
(Servlets)
Réponse HTTP
Vue Modèle
(pages JSP) (objets Java)
43