L3 MIASHS, Programmation Web 2, année 2022
Introduction à HTML/CSS
Les liens font partie du cours et doivent être lus/visités.
Architecture client/serveur et requête HTTP
À chaque fois qu’une personne visite un site internet, elle consulte
une URL
qui pointe vers une page HTML
qui va être afficher.
Cette simplicité cache un grand nombre d’étape intermédiaire.
Le navigateur va:
- Interroger les serveur
DNS
pour transformer l’URL
enIP
: on parle de résolution d’URL
. - Se connecter au serveur grâce à l’addresse
IP
(et le protocoleTCP/IP
) - Demander au serveur via le protocole
HTTP
une page web (sous la forme d’un documentHTML
) - Télécharger le document
HTML
et le lire. - Trouver des ressources nécessaires à son affichage:
- feuille de style
CSS
- fichier JavaScript
- média: images et vidéo
- fichier de données: document
JSON
,XML
.
- feuille de style
Chacune de ses ressources vont faire l’objet de requêtes séparées.
Anatomie d’une requête de Firefox pour se connecter à un site web
Lorsque mon navigateur se connecte à perdu.com, voici la requête qu’il envoie au serveur.
GET / HTTP/2
Host: perdu.com
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:93.0) Gecko/20100101 Firefox/93.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: fr,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate, br
DNT: 1
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1
Sec-GPC: 1
Cache-Control: no-cache
Cette requête contient quelques informations intéressantes.
La première ligne contient la méthode HTTP utilisée (ici GET), la ressource cible (ici / la racine) et le protocole (ici HTTP/2). La méthode HTTP indique au serveur le type d’interaction que l’on souhaite réaliser. Le serveur n’est pas obliger de répondre favorablement. Les méthodes possibles sont nombreuses, mais les plus courantes sont les suivantes:
GET
: accéder à un document sur le serveur (et ne doit surtout rien changer au serveur)POST
: soumettre une information au serveurDELETE
: supprimer une ressource sur le serveurPATCH
: met à jour une ressource.
La deuxième ligne indique la cible (l’URL) visé. Cela est utile notamment quand un seul serveur héberge de nombreuses pages web. Cela permet au serveur de comprendre quel site est concerné par la requête.
User-agent
indique au serveur le type de client qui a générer la requête.Accept:
indique au serveur le type de document que sait lire le client.
Le serveur répond alors par une requête contenant:
- Un entête
- Un document
HTML
L’entête ressemble beaucoup à la requête:
HTTP/2 200 OK
date: Mon, 20 Dec 2021 14:03:32 GMT
server: Apache
last-modified: Thu, 02 Jun 2016 06:01:08 GMT
etag: "cc-5344555136fe9-gzip"
accept-ranges: bytes
cache-control: max-age=600
expires: Mon, 20 Dec 2021 14:13:32 GMT
vary: Accept-Encoding,User-Agent
content-encoding: gzip
content-length: 163
content-type: text/html
X-Firefox-Spdy: h2
Et un document HTML qui n’est rien d’autre qu’un document texte avec des balises indiquant des informations sur la structure et qui sera interprété par le navigateur pour l’affichage de la page.
<html>
<head>
<title>Vous Etes Perdu ?</title>
</head>
<body>
<h1>
Perdu sur l'Internet ?</h1>
<h2>
Pas de panique, on va vous aider</h2>
<strong>
<pre>
<----- vous êtes ici
*</pre>
</strong>
</body>
</html>
Ce document peut être vu comme un arbre qui hiérarchise l’information
qu’il contient. On parle alors de DOM
Lisez et faites les activités de cette page de mozilla.
Séparation du fond et de la forme
Le site perdu.com n’est pas très intéressant, il n’a pas besoin de style pour afficher son information. Quand on a beaucoup de contenu, il devient difficile de parvenir à maintenir un affichage cohérent et uniforme sur l’ensemble d’un site.
Si chaque page était complètement indépendante, cela signifierais que chaque modification de style sur un site nécessiterais de retravailler chaque page indépendamment.
Pour éviter ça, on introduit une séparation du contenu (le fond) de la forme (le style). Ce n’est pas propre à internet, c’est également le cas:
- des traitements de textes qui ont des feuilles de styles
- des documents académiques écris via
Latex
Introduction à CSS
Contrairement à une idée répandu, créer une feuille de style est difficile. C’est un travail de professionnel de le faire correctement et cela nécessite d’être à jour dans les différentes politiques des navigateurs.
Il y a des corps de métiers du web dont c’est l’unique objectif. Il
est possible de faire énormément de chose de pleins de façon différentes
avec CSS
.
On ne peut pas reprendre tous le langage et ces spécificités ici, et
durant les TD on manipulera différentes parties de CSS
.
Dans une feuille de style, on a des règles de la forme:
descripteur {: valeur1;
attribut1: valeur2;
attribut2...
}
Un descripteur est une manière de décrire des ensembles d’éléments. Il existe pleins de manière de le faire:
- par nature de l’élément (la valeur de la balise)
- par identifient de l’élément
- par classe
Pour en savoir plus, lisez la page de Mozilla.
Compiled the: mer. 04 sept. 2024 12:49:55 CEST