SlideShare une entreprise Scribd logo
1  sur  51
Télécharger pour lire hors ligne
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
Conception d'Applications
Interactives :
Applications Web
Séance #1 - Côté navigateur
HTML5 / CSS / JS / Angular
1/3 - HTTP, HTML, CSS, JS
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
Description du module
● Côté navigateur
○ HTML5 / CSS / JS - Angular
● Côté serveur - Concepts
○ Introduction à JEE : servlets, JSP, frameworks… - SparkJava
● Forge JavaScript
○ Une forge logicielle pour JavaScript : Grunt/Gulp, Bower, Yeoman
● Côté serveur - NodeJS
○ NodeJS, ExpressJS, APIs
● Écosystème de la webapp
○ Introduction à NoSQL : MongoDB, Redis, Cassandra…
● Autour de la webapp
○ Forge logicielle en Java - Test-driven development
● Examen et exposées des projets
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
● Les bases du web
○ HTTP, URL, HTML, CSS, JS, AJAX...
● HTML5, CSS3
○ HTML5, CSS3, living standard, le casse-tête des navigateurs...
○ Le web en 2016, mobile first, le responsive design...
● Twitter Bootstrap
○ Outils, échafaudage, LessCSS, JQuery
● Le développeur web en 2017
○ Rôles, technologies, langages, veille technologique
● Angular
Côté navigateur
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
Qui sommes nous
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
Horacio Gonzalez
@LostInBrittany
Cityzen Data
http://cityzendata.com
Spaniard lost in Brittany,
developer, dreamer and
all-around geek
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
Xavier Marin
● Chef de projet et développeur passionné
au Crédit Mutuel Arkéa
● CTO chez @qaobee
marin.xavier@gmail.com
@XavMarin
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
Les bases du web
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
Les bases du web
● Le Web, URLs, HTTP
● HTML
● CSS
● JavaScript
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
Le Web, URLs, HTTP
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
Le Web
● Système hypertexte public fonctionnant sur
internet qui permet de consulter, avec un
navigateur, des ressources accessibles sur des
sites (merci Wikipedia)
Image : CIA
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
Principaux composants du web
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
Uniform Resource Locator
Chaîne de caractères utilisée pour adresser les
ressources du web
URLs
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
URL - Query string
Chaîne de caractères envoyée au serveur
● Des données à passer à l'application web
● Personnalisation des contenus
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
URL - Identifiant de fragment
Chaîne de caractères interprétée par le navigateur
● Identifie une ressource dans le document reçu
● Jamais transmise au serveur
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
HTTP
HyperText Transfer Protocol
Protocole de communication client-serveur
développé pour le World Wide Web
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
Requête HTTP
● En-têtes HTTP : Information ajoutée
○ Host : domaine appelé (serveurs multi-domaines)
○ User-Agent : identifiant navigateur
○ Referer : Document duquel on vient
○ ...
● Méthode : Commande demandée
● Version : HTTP/1.0, HTTP/1.1
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
Méthodes HTTP
● GET
● POST
● PUT
● DELETE
● HEAD
● TRACE
● OPTIONS
● CONNECT
● PATCH
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
Réponses HTTP
● Ligne de Statut
● En-têtes HTTP : Information ajoutée
○ Date
○ Server : Info sur le serveur web
○ Content-Type : identifiant de format de données
○ Content-Length : taille en octets de la ressource
○ ...
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
Web statique et web dynamique
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
HTML
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
HTML
HyperText Markup Language
Les documents HTML sont le cœur du web
● Composés de
○ Texte
○ Balisage
○ Références à d'autres documents
○ Liens
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
Document HTML
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
Le contenu à marquer est délimité par des balises
Balises HTML
● Balises de premier niveau
● Balises d'en-tête
● Balises de structuration du texte
● Balises de listes
● Balises de tableau
● Balises de formulaire
● Balises de section
● Balises génériques
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
Balises de structuration du texte
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
Balises avec attributs
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
Balises auto-fermantes
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
Les espaces et les sauts de ligne
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
Éléments inline et éléments bloc
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
Balises génériques : <span> et <div>
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
CSS
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
La mise en page HTML
Image : Wikipedia
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
La mise en page HTML
Image : Mosaic
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
La mise en page HMTL
Sites Disney.com et Apple.com, 1997
Source : Wayback Machine
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
La mise en page HMTL
Site Disney.com, 1999
Source : Wayback Machine
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
Les feuilles de style en cascade
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
● Arbre logique du document
○ DOM
● Concept de boîte
● Propriétés et valeurs
● Sélecteurs et blocs de règles
Principes des CSS
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
Objectifs des CSS
● Séparer la structure de la présentation
● Décliner les styles selon le récepteur
● Permettre la cascade des styles
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
Le problème
Problème : Support différent selon le navigateur
● Guerre des navigateurs
● Domination IE6
● CSS 2 et CSS 2.1 jamais complètement implémentées
○ Technique du doctype switching
○ Différents sous-ensembles de CSS 1
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
L'exemple par excellence :
CSS Zen Garden
Source : CSS Zen Garden
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
DOM
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
L'arbre DOM
Document Object Model
● Interface indépendante de tout langage de programmation et de toute plate-forme,
permettant à des programmes informatiques et à des scripts d'accéder ou de mettre
à jour le contenu, la structure ou le style de documents XML (merci Wikipedia)
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
JavaScript
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
Objectif : donner du dynamisme
● Né chez Netscape en 1995
○ Adopté par Internet Explorer 3 en 1996
○ Standardisé comme ECMAScript en 1997
● Des scripts qui s'exécutent côté navigateur
○ Pages webs dynamiques, DHTML
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
Caractéristiques de JavaScript
● Impératif et structuré
● Fonctionnel
○ Les fonctions sont objets de premier niveau
● Dynamique
○ Typage dynamique
○ Avec objets : tableaux associatif (clé-valeur)
■ Propriétés dynamiques
● Basé sur des Prototypes
○ Héritage basé sur le clonage d'objets
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
XMLHttpRequest
● Appeler un serveur depuis un script JS
○ Traiter la réponse directement depuis le script
○ Réponse en JSON, XML, HTML ou simple texte
● Origine : un ActiveX pour IE 5 (1998)
○ Ré-implémenté par Mozilla (2002), Safari (2004)
● Permet de la vraie interactivité client-serveur
○ Réponse synchrone ou asynchrone
● Sécurité : same origin policy
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
AJAX
Asynchronous JavaScript and XML
● Ajax combine JavaScript, les CSS, XML, le DOM et le XMLHttpRequest afin
d'améliorer maniabilité et confort d'utilisation des Applications Internet Riches
(merci Wikipedia)
(c) Colgate-Palmolive
Source : Wikipedia
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
● HTTP : modèle requête-réponse
● Applications riches : besoin de pousser des infos du serveur vers client
● Comment fait-on ?
AJAX polling
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
Conclusions
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
Des technologies à la base du web
On a passé en revue les technologies de base du web
Ces technologies sont encore très importantes aujourd'hui
Si vous ne les maîtrisez pas,
c'est le bon moment pour vous y mettre...
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
Voulez-vous en savoir plus ?
Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème
semestre
Voulez-vous en savoir plus ?
● Wikipedia
○ HTML, CSS, JavaScript...
● Tutoriels
○ Developpez.com, HTML.net, CSS Faciles...
● En anglais
○ W3C's intro to HTML, W3C's intro to CSS,
HTML Dog, w3schools.com...

Contenu connexe

Tendances

Enib cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !
Enib   cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !Enib   cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !
Enib cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !
Horacio Gonzalez
 
Utilisation de node.js avec mongoDB
Utilisation de node.js avec mongoDBUtilisation de node.js avec mongoDB
Utilisation de node.js avec mongoDB
13p
 
Bootcamp d'Initiation à Android - 2013/11/30
Bootcamp d'Initiation à Android  - 2013/11/30Bootcamp d'Initiation à Android  - 2013/11/30
Bootcamp d'Initiation à Android - 2013/11/30
Horacio Gonzalez
 

Tendances (20)

Enib cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !
Enib   cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !Enib   cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !
Enib cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !
 
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS
ENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JSENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS
 
Introduction aux technologies du Web (2)
Introduction aux technologies du Web (2)Introduction aux technologies du Web (2)
Introduction aux technologies du Web (2)
 
Responsible Design ou Le web moderne à destination de tous
Responsible Design ou Le web moderne à destination de tousResponsible Design ou Le web moderne à destination de tous
Responsible Design ou Le web moderne à destination de tous
 
Conception de code javascript cote client dans la continuité du renouveau du web
Conception de code javascript cote client dans la continuité du renouveau du webConception de code javascript cote client dans la continuité du renouveau du web
Conception de code javascript cote client dans la continuité du renouveau du web
 
ENIB 2013-2014 - CAI Web #1: Côté navigateur 1/3
ENIB 2013-2014 - CAI Web #1: Côté navigateur 1/3ENIB 2013-2014 - CAI Web #1: Côté navigateur 1/3
ENIB 2013-2014 - CAI Web #1: Côté navigateur 1/3
 
2014.12.11 - TECH CONF #3 - Présentation Node.js
2014.12.11 - TECH CONF #3 - Présentation Node.js2014.12.11 - TECH CONF #3 - Présentation Node.js
2014.12.11 - TECH CONF #3 - Présentation Node.js
 
Utilisation de node.js avec mongoDB
Utilisation de node.js avec mongoDBUtilisation de node.js avec mongoDB
Utilisation de node.js avec mongoDB
 
Atelier #2 initiation à css
Atelier #2 initiation à cssAtelier #2 initiation à css
Atelier #2 initiation à css
 
Bootcamp d'Initiation à Android - 2013/11/30
Bootcamp d'Initiation à Android  - 2013/11/30Bootcamp d'Initiation à Android  - 2013/11/30
Bootcamp d'Initiation à Android - 2013/11/30
 
Node.js
Node.jsNode.js
Node.js
 
Jquery Mobile vs Twitter Bootstrap
Jquery Mobile vs Twitter BootstrapJquery Mobile vs Twitter Bootstrap
Jquery Mobile vs Twitter Bootstrap
 
Livre Blanc Web temps réel - Node JS
Livre Blanc Web temps réel - Node JSLivre Blanc Web temps réel - Node JS
Livre Blanc Web temps réel - Node JS
 
Introduction au langage de programmation Lua / Digital apéro [03/12/2014]
Introduction au langage de programmation Lua / Digital apéro [03/12/2014]Introduction au langage de programmation Lua / Digital apéro [03/12/2014]
Introduction au langage de programmation Lua / Digital apéro [03/12/2014]
 
Codedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
Codedarmor 2012 - 06/03 - HTML5, CSS3 et JavascriptCodedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
Codedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
 
GDG Rennes - Bootcamp Initiation Android - Théorie
GDG Rennes - Bootcamp Initiation Android -  ThéorieGDG Rennes - Bootcamp Initiation Android -  Théorie
GDG Rennes - Bootcamp Initiation Android - Théorie
 
Le portage des WebExtensions
Le portage des WebExtensionsLe portage des WebExtensions
Le portage des WebExtensions
 
Middleman avec des clients
Middleman avec des clientsMiddleman avec des clients
Middleman avec des clients
 
iGraal et les webextensions
iGraal et les webextensionsiGraal et les webextensions
iGraal et les webextensions
 
Les performances Web mobile
Les performances Web mobileLes performances Web mobile
Les performances Web mobile
 

Similaire à ENIB 2016 2017 - CAI Web S02E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS

Enib cours c.a.i. web - séance #1 - html5 css3-js - 1
Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1
Enib cours c.a.i. web - séance #1 - html5 css3-js - 1
Horacio Gonzalez
 
Cours n°1.1-Introduction.pdf angularrrrr
Cours n°1.1-Introduction.pdf angularrrrrCours n°1.1-Introduction.pdf angularrrrr
Cours n°1.1-Introduction.pdf angularrrrr
inesrdissi60
 
Digital race evolution programmation web 1.0
Digital race   evolution programmation web 1.0Digital race   evolution programmation web 1.0
Digital race evolution programmation web 1.0
Sequoia-ID
 

Similaire à ENIB 2016 2017 - CAI Web S02E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS (20)

Enib cours c.a.i. web - séance #1 - html5 css3-js - 1
Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1
Enib cours c.a.i. web - séance #1 - html5 css3-js - 1
 
Développement Web
Développement WebDéveloppement Web
Développement Web
 
Les web extensions
Les web extensionsLes web extensions
Les web extensions
 
Développement Web
Développement WebDéveloppement Web
Développement Web
 
Cours Introduction a la programmation Web ISI Ettaieb Abdessattar Chapitre 6
Cours Introduction a la programmation Web ISI Ettaieb Abdessattar Chapitre 6Cours Introduction a la programmation Web ISI Ettaieb Abdessattar Chapitre 6
Cours Introduction a la programmation Web ISI Ettaieb Abdessattar Chapitre 6
 
ppt1.pptx
ppt1.pptxppt1.pptx
ppt1.pptx
 
Cours n°1.1-Introduction.pdf angularrrrr
Cours n°1.1-Introduction.pdf angularrrrrCours n°1.1-Introduction.pdf angularrrrr
Cours n°1.1-Introduction.pdf angularrrrr
 
Christophe Tricot et Raphaël Velt (infoviz)
Christophe Tricot et Raphaël Velt (infoviz)Christophe Tricot et Raphaël Velt (infoviz)
Christophe Tricot et Raphaël Velt (infoviz)
 
Les dernières avancées HTML5 & CSS3 en action !
Les dernières avancées HTML5 & CSS3 en action !Les dernières avancées HTML5 & CSS3 en action !
Les dernières avancées HTML5 & CSS3 en action !
 
Les dernières avancées html5 & css3 en action !
Les dernières avancées html5 & css3 en action !Les dernières avancées html5 & css3 en action !
Les dernières avancées html5 & css3 en action !
 
Introduction aux Technologies Web élaborée par Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINEIntroduction aux Technologies Web élaborée par Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINE
 
Introduction webextensions
Introduction webextensionsIntroduction webextensions
Introduction webextensions
 
Introduction web.pdf
Introduction web.pdfIntroduction web.pdf
Introduction web.pdf
 
7_SitesWebMVC.pdf
7_SitesWebMVC.pdf7_SitesWebMVC.pdf
7_SitesWebMVC.pdf
 
Yass-RSI-Bootstrap.pptx
Yass-RSI-Bootstrap.pptxYass-RSI-Bootstrap.pptx
Yass-RSI-Bootstrap.pptx
 
Intranets et sites web en SharePoint 2013 avec le Cross Site Publishing
Intranets et sites web en SharePoint 2013 avec le Cross Site PublishingIntranets et sites web en SharePoint 2013 avec le Cross Site Publishing
Intranets et sites web en SharePoint 2013 avec le Cross Site Publishing
 
Programmer en html5, css 3 et java script (70 480)
Programmer en html5, css 3 et java script (70 480)Programmer en html5, css 3 et java script (70 480)
Programmer en html5, css 3 et java script (70 480)
 
Digital race evolution programmation web 1.0
Digital race   evolution programmation web 1.0Digital race   evolution programmation web 1.0
Digital race evolution programmation web 1.0
 
Microservice LabsZoom.pptx.pdf
Microservice LabsZoom.pptx.pdfMicroservice LabsZoom.pptx.pdf
Microservice LabsZoom.pptx.pdf
 
Mythes et réalités des projets Web (Webschool tours)
Mythes et réalités des projets Web (Webschool tours)Mythes et réalités des projets Web (Webschool tours)
Mythes et réalités des projets Web (Webschool tours)
 

Plus de Horacio Gonzalez

Il n'y a pas que Polymer dans la vie… - RennesJS - 2017-06-27
Il n'y a pas que Polymer dans la vie… - RennesJS - 2017-06-27Il n'y a pas que Polymer dans la vie… - RennesJS - 2017-06-27
Il n'y a pas que Polymer dans la vie… - RennesJS - 2017-06-27
Horacio Gonzalez
 
2014 03-25 - GDG Nantes - Web Components avec Polymer
2014 03-25 - GDG Nantes - Web Components avec Polymer2014 03-25 - GDG Nantes - Web Components avec Polymer
2014 03-25 - GDG Nantes - Web Components avec Polymer
Horacio Gonzalez
 
Bootcamp d'Initiation à Android - 2013/11/30 - Live coding : Hello world!
Bootcamp d'Initiation à Android  - 2013/11/30 - Live coding :   Hello world!Bootcamp d'Initiation à Android  - 2013/11/30 - Live coding :   Hello world!
Bootcamp d'Initiation à Android - 2013/11/30 - Live coding : Hello world!
Horacio Gonzalez
 
ENIB 2013-2014 - CAI Web #3: Groovy
ENIB 2013-2014 - CAI Web #3: GroovyENIB 2013-2014 - CAI Web #3: Groovy
ENIB 2013-2014 - CAI Web #3: Groovy
Horacio Gonzalez
 

Plus de Horacio Gonzalez (20)

Il n'y a pas que Polymer dans la vie… - RennesJS - 2017-06-27
Il n'y a pas que Polymer dans la vie… - RennesJS - 2017-06-27Il n'y a pas que Polymer dans la vie… - RennesJS - 2017-06-27
Il n'y a pas que Polymer dans la vie… - RennesJS - 2017-06-27
 
But there is no web component for that - Web Components Remote Conference - 2...
But there is no web component for that - Web Components Remote Conference - 2...But there is no web component for that - Web Components Remote Conference - 2...
But there is no web component for that - Web Components Remote Conference - 2...
 
Mixité dans le monde des WebComponents - DevFest Toulouse - 2017-09-27
 Mixité dans le monde des WebComponents - DevFest Toulouse - 2017-09-27 Mixité dans le monde des WebComponents - DevFest Toulouse - 2017-09-27
Mixité dans le monde des WebComponents - DevFest Toulouse - 2017-09-27
 
Battle of Frameworks: Polymer - Meetup Paris Web Components - 2016-09
Battle of Frameworks: Polymer - Meetup Paris Web Components - 2016-09Battle of Frameworks: Polymer - Meetup Paris Web Components - 2016-09
Battle of Frameworks: Polymer - Meetup Paris Web Components - 2016-09
 
Mixing Web Components - Best of Web Paris - 2016 06-09
Mixing Web Components - Best of Web Paris - 2016 06-09Mixing Web Components - Best of Web Paris - 2016 06-09
Mixing Web Components - Best of Web Paris - 2016 06-09
 
Polymer in the real life - Devoxx France - 2016 04-20
Polymer in the real life - Devoxx France - 2016 04-20Polymer in the real life - Devoxx France - 2016 04-20
Polymer in the real life - Devoxx France - 2016 04-20
 
Warp10: collect, store and manipulate sensor data - BreizhCamp - 2016 03-24
Warp10: collect, store and manipulate sensor data - BreizhCamp - 2016 03-24 Warp10: collect, store and manipulate sensor data - BreizhCamp - 2016 03-24
Warp10: collect, store and manipulate sensor data - BreizhCamp - 2016 03-24
 
ENIB 2015 2016 - CAI Web S02E03- Forge JS 1/4 - La forge JavaScript
ENIB 2015 2016 - CAI Web S02E03- Forge JS 1/4 - La forge JavaScriptENIB 2015 2016 - CAI Web S02E03- Forge JS 1/4 - La forge JavaScript
ENIB 2015 2016 - CAI Web S02E03- Forge JS 1/4 - La forge JavaScript
 
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 3/3 - Web Components avec Po...
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 3/3 - Web Components avec Po...ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 3/3 - Web Components avec Po...
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 3/3 - Web Components avec Po...
 
ENIB 2015 2016 - CAI Web S02E03 - Forge JS 2/4 - MongoDB and NoSQL
ENIB 2015 2016 - CAI Web S02E03 - Forge JS 2/4 - MongoDB and NoSQLENIB 2015 2016 - CAI Web S02E03 - Forge JS 2/4 - MongoDB and NoSQL
ENIB 2015 2016 - CAI Web S02E03 - Forge JS 2/4 - MongoDB and NoSQL
 
ENIB 2015-2016 - CAI Web - S01E01- MongoDB and NoSQL
ENIB 2015-2016 - CAI Web - S01E01- MongoDB and NoSQLENIB 2015-2016 - CAI Web - S01E01- MongoDB and NoSQL
ENIB 2015-2016 - CAI Web - S01E01- MongoDB and NoSQL
 
ENIB 2015-2016 - CAI Web - S01E01- La forge JavaScript
ENIB 2015-2016 - CAI Web - S01E01- La forge JavaScriptENIB 2015-2016 - CAI Web - S01E01- La forge JavaScript
ENIB 2015-2016 - CAI Web - S01E01- La forge JavaScript
 
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 3/3 - Web components avec ...
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 3/3 - Web components avec ...ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 3/3 - Web components avec ...
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 3/3 - Web components avec ...
 
Beyond Polymer - JUG Summer Camp - 2015-09-18
Beyond Polymer - JUG Summer Camp - 2015-09-18Beyond Polymer - JUG Summer Camp - 2015-09-18
Beyond Polymer - JUG Summer Camp - 2015-09-18
 
Mixing Web Components - Paris Web Components - 2015 09-16
Mixing Web Components - Paris Web Components - 2015 09-16 Mixing Web Components - Paris Web Components - 2015 09-16
Mixing Web Components - Paris Web Components - 2015 09-16
 
Devoxx France - Web Components, Polymer et Material Design
Devoxx France -  Web Components, Polymer et Material DesignDevoxx France -  Web Components, Polymer et Material Design
Devoxx France - Web Components, Polymer et Material Design
 
Steven Le Roux - Kafka et Storm au service de la lutte antiDDoS à OVH - Soiré...
Steven Le Roux - Kafka et Storm au service de la lutte antiDDoS à OVH - Soiré...Steven Le Roux - Kafka et Storm au service de la lutte antiDDoS à OVH - Soiré...
Steven Le Roux - Kafka et Storm au service de la lutte antiDDoS à OVH - Soiré...
 
2014 03-25 - GDG Nantes - Web Components avec Polymer
2014 03-25 - GDG Nantes - Web Components avec Polymer2014 03-25 - GDG Nantes - Web Components avec Polymer
2014 03-25 - GDG Nantes - Web Components avec Polymer
 
Bootcamp d'Initiation à Android - 2013/11/30 - Live coding : Hello world!
Bootcamp d'Initiation à Android  - 2013/11/30 - Live coding :   Hello world!Bootcamp d'Initiation à Android  - 2013/11/30 - Live coding :   Hello world!
Bootcamp d'Initiation à Android - 2013/11/30 - Live coding : Hello world!
 
ENIB 2013-2014 - CAI Web #3: Groovy
ENIB 2013-2014 - CAI Web #3: GroovyENIB 2013-2014 - CAI Web #3: Groovy
ENIB 2013-2014 - CAI Web #3: Groovy
 

ENIB 2016 2017 - CAI Web S02E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS

  • 1. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre Conception d'Applications Interactives : Applications Web Séance #1 - Côté navigateur HTML5 / CSS / JS / Angular 1/3 - HTTP, HTML, CSS, JS
  • 2. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre Description du module ● Côté navigateur ○ HTML5 / CSS / JS - Angular ● Côté serveur - Concepts ○ Introduction à JEE : servlets, JSP, frameworks… - SparkJava ● Forge JavaScript ○ Une forge logicielle pour JavaScript : Grunt/Gulp, Bower, Yeoman ● Côté serveur - NodeJS ○ NodeJS, ExpressJS, APIs ● Écosystème de la webapp ○ Introduction à NoSQL : MongoDB, Redis, Cassandra… ● Autour de la webapp ○ Forge logicielle en Java - Test-driven development ● Examen et exposées des projets
  • 3. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre ● Les bases du web ○ HTTP, URL, HTML, CSS, JS, AJAX... ● HTML5, CSS3 ○ HTML5, CSS3, living standard, le casse-tête des navigateurs... ○ Le web en 2016, mobile first, le responsive design... ● Twitter Bootstrap ○ Outils, échafaudage, LessCSS, JQuery ● Le développeur web en 2017 ○ Rôles, technologies, langages, veille technologique ● Angular Côté navigateur
  • 4. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre Qui sommes nous
  • 5. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre Horacio Gonzalez @LostInBrittany Cityzen Data http://cityzendata.com Spaniard lost in Brittany, developer, dreamer and all-around geek
  • 6. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre Xavier Marin ● Chef de projet et développeur passionné au Crédit Mutuel Arkéa ● CTO chez @qaobee marin.xavier@gmail.com @XavMarin
  • 7. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre Les bases du web
  • 8. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre Les bases du web ● Le Web, URLs, HTTP ● HTML ● CSS ● JavaScript
  • 9. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre Le Web, URLs, HTTP
  • 10. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre Le Web ● Système hypertexte public fonctionnant sur internet qui permet de consulter, avec un navigateur, des ressources accessibles sur des sites (merci Wikipedia) Image : CIA
  • 11. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre Principaux composants du web
  • 12. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre Uniform Resource Locator Chaîne de caractères utilisée pour adresser les ressources du web URLs
  • 13. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre URL - Query string Chaîne de caractères envoyée au serveur ● Des données à passer à l'application web ● Personnalisation des contenus
  • 14. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre URL - Identifiant de fragment Chaîne de caractères interprétée par le navigateur ● Identifie une ressource dans le document reçu ● Jamais transmise au serveur
  • 15. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre HTTP HyperText Transfer Protocol Protocole de communication client-serveur développé pour le World Wide Web
  • 16. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre Requête HTTP ● En-têtes HTTP : Information ajoutée ○ Host : domaine appelé (serveurs multi-domaines) ○ User-Agent : identifiant navigateur ○ Referer : Document duquel on vient ○ ... ● Méthode : Commande demandée ● Version : HTTP/1.0, HTTP/1.1
  • 17. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre Méthodes HTTP ● GET ● POST ● PUT ● DELETE ● HEAD ● TRACE ● OPTIONS ● CONNECT ● PATCH
  • 18. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre Réponses HTTP ● Ligne de Statut ● En-têtes HTTP : Information ajoutée ○ Date ○ Server : Info sur le serveur web ○ Content-Type : identifiant de format de données ○ Content-Length : taille en octets de la ressource ○ ...
  • 19. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre Web statique et web dynamique
  • 20. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre HTML
  • 21. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre HTML HyperText Markup Language Les documents HTML sont le cœur du web ● Composés de ○ Texte ○ Balisage ○ Références à d'autres documents ○ Liens
  • 22. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre Document HTML
  • 23. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre Le contenu à marquer est délimité par des balises Balises HTML ● Balises de premier niveau ● Balises d'en-tête ● Balises de structuration du texte ● Balises de listes ● Balises de tableau ● Balises de formulaire ● Balises de section ● Balises génériques
  • 24. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre Balises de structuration du texte
  • 25. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre Balises avec attributs
  • 26. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre Balises auto-fermantes
  • 27. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre Les espaces et les sauts de ligne
  • 28. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre Éléments inline et éléments bloc
  • 29. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre Balises génériques : <span> et <div>
  • 30. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre CSS
  • 31. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre La mise en page HTML Image : Wikipedia
  • 32. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre La mise en page HTML Image : Mosaic
  • 33. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre La mise en page HMTL Sites Disney.com et Apple.com, 1997 Source : Wayback Machine
  • 34. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre La mise en page HMTL Site Disney.com, 1999 Source : Wayback Machine
  • 35. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre Les feuilles de style en cascade
  • 36. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre ● Arbre logique du document ○ DOM ● Concept de boîte ● Propriétés et valeurs ● Sélecteurs et blocs de règles Principes des CSS
  • 37. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre Objectifs des CSS ● Séparer la structure de la présentation ● Décliner les styles selon le récepteur ● Permettre la cascade des styles
  • 38. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre Le problème Problème : Support différent selon le navigateur ● Guerre des navigateurs ● Domination IE6 ● CSS 2 et CSS 2.1 jamais complètement implémentées ○ Technique du doctype switching ○ Différents sous-ensembles de CSS 1
  • 39. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre L'exemple par excellence : CSS Zen Garden Source : CSS Zen Garden
  • 40. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre DOM
  • 41. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre L'arbre DOM Document Object Model ● Interface indépendante de tout langage de programmation et de toute plate-forme, permettant à des programmes informatiques et à des scripts d'accéder ou de mettre à jour le contenu, la structure ou le style de documents XML (merci Wikipedia)
  • 42. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre JavaScript
  • 43. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre Objectif : donner du dynamisme ● Né chez Netscape en 1995 ○ Adopté par Internet Explorer 3 en 1996 ○ Standardisé comme ECMAScript en 1997 ● Des scripts qui s'exécutent côté navigateur ○ Pages webs dynamiques, DHTML
  • 44. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre Caractéristiques de JavaScript ● Impératif et structuré ● Fonctionnel ○ Les fonctions sont objets de premier niveau ● Dynamique ○ Typage dynamique ○ Avec objets : tableaux associatif (clé-valeur) ■ Propriétés dynamiques ● Basé sur des Prototypes ○ Héritage basé sur le clonage d'objets
  • 45. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre XMLHttpRequest ● Appeler un serveur depuis un script JS ○ Traiter la réponse directement depuis le script ○ Réponse en JSON, XML, HTML ou simple texte ● Origine : un ActiveX pour IE 5 (1998) ○ Ré-implémenté par Mozilla (2002), Safari (2004) ● Permet de la vraie interactivité client-serveur ○ Réponse synchrone ou asynchrone ● Sécurité : same origin policy
  • 46. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre AJAX Asynchronous JavaScript and XML ● Ajax combine JavaScript, les CSS, XML, le DOM et le XMLHttpRequest afin d'améliorer maniabilité et confort d'utilisation des Applications Internet Riches (merci Wikipedia) (c) Colgate-Palmolive Source : Wikipedia
  • 47. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre ● HTTP : modèle requête-réponse ● Applications riches : besoin de pousser des infos du serveur vers client ● Comment fait-on ? AJAX polling
  • 48. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre Conclusions
  • 49. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre Des technologies à la base du web On a passé en revue les technologies de base du web Ces technologies sont encore très importantes aujourd'hui Si vous ne les maîtrisez pas, c'est le bon moment pour vous y mettre...
  • 50. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre Voulez-vous en savoir plus ?
  • 51. Côté navigateur 1/3ENIB - CAI Web 2016-2017 2ème semestre Voulez-vous en savoir plus ? ● Wikipedia ○ HTML, CSS, JavaScript... ● Tutoriels ○ Developpez.com, HTML.net, CSS Faciles... ● En anglais ○ W3C's intro to HTML, W3C's intro to CSS, HTML Dog, w3schools.com...