Vous êtes sur la page 1sur 78

Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Chapitre 1 : Introduction au web


Introduction Navigateurs Web Autres clients Web URLs

Historique

1959-1968 : Programme ARPA ministère américain de la défense :


lancer un réseau capable de supporter lles conséquences
d'un conflit nucléaire.
1969 : ARPANET,,l'ancêtre d'internet : les universités américaines
s'équipent de gros ordinateurs et se connectent au réseau
AARPANET.
1970-1982 : Ouverture sur le monde : premières connexions avec
la Norvège et Londres.
1983 : Naissance d'Internet : protocole Tcp/IP tous les réseaux
s'interconnectent..
Introduction Navigateurs Web Autres clients Web URLs

Historique

1986 : Les autoroutes de ll'information : la National Science Fondation


décide de déploier des super-ordinateurs pour augmenter le débit
d'Internet.
1987-1992::LLes années d'expansion ::les fournisseurs d'accès
apparaissent, les entreprises privées se connectent au réseau.
1993-2003 ::L'explosion d'internet : ouverture au grand public
avènement du WEB et du courrier électronique "marché considérable".

2003-?os jours : L'apparition du Web 2.0 qui a accompagné la


naissance des réseaux sociaux, des blogs, et des wikis...
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Vue générale
Internet ?
- Un réseau de réseaux
- Un ensemble dellogiciels et des protocoles
- Basé sur l'architecture Tcp/IPCP/IP
- Fonctionne en mode client-serveur
- Offre un ensemble de services (e-mai,,transfert de fichiers, connexion
à distance, www, ....)
- Une somme " d'inventions" qui s'accumulent
o mécanismes réseau de base (Tcp/IP)
o Gestion des noms et des adresses (DNS)
o des outils et des protocoles spécialisés
o Le langage HTMLL
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Vue générale
Internet ?
- Une construction à partir du "bas"»
o réseau local (laboratoire, institut, département)
o réseau local (campus, entreprise)
o réseau régional
o réseau national
o réseau mondial
- 3 niveaux d'interconnexion
o Postes de travail (ordinateur, terminal,... )
o Liaisons phisiques (cables, fibres optiques,...)
o Routeurs (équipement spécialisé, ordinateur,... )
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Vue générale

Intranet et Extranet

- Intranet
o utilisation des protocoles, outils et services de l'nternet dans un
cadre privé (établissement, entreprise, état...)
o intégration des services existants: accès aux BD, messageries,
fforums,...

- Extranet : ouverture vers des partenaires (fournisseurs, clients,.... )


Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Vue générale
Internet : Réseaux de Réseaux
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Vue générale

Internet : Réseaux de Réseaux


Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Vue générale

Plusieurs échelles (locale et globale)


Pile de protocoles
Messages imbriqués

Pour: 01:23:45:67:89:ab
Pour: 12.34.56.78
Page: 1 sur 3
<html>
<head>
...
</head>
<body> ...
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Le modèle OSI
# Couche Exemples Fonctionnalités
7 Application HTTP, FTP, SMTP tâche utilisateur de
haut niveau
4 Transport TCP, UDP, ICMP sessions, fiabilité,
fragmentation
3 Réseau IPv4, IPv6 routage, adressage,
réseau non fiable
2 Lien Ethernet, 802.11 (ARP) données fiables,
adresses locales
1 Physique Ethernet, 802.11 échange physique,
non fiable

→ Plus la couche est basse, plus l’enveloppe est à l’extérieur.


Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Table des matières

1 Modèle OSI

2 Couches basses

3 Couches hautes

4 HTTP

5 Headers client

6 Headers serveur

7 Autres aspects
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

IP (Internet Protocol), couche 3

Donner des adresses aux machines.


Router des paquets entre ces adresses.
Déterminer la position géographique d’une machine.

Année Exemple Adresses Trafic


IPv4 1981 208.80.152.201 ≤ 232 99%
IPv6 1998 2620 : 0 : 860 : ed1a :: 1 ≤ 2128 1% 1

Network Address Translation pour pallier la pénurie d’adresses.

→ On peut envoyer des messages à une adresse.

1. http://www.circleid.com/posts/20121128_ipv6_a_2012_report_card/, Nov. 2012


Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

DNS (Domain Name System), intermède

Adresses IP routables mais difficiles à mémoriser.


Service pour convertir www.wikipedia.org en 208.80.152.201.
Hiérarchie : org, wikipedia.org, en.wikipedia.org, etc.
Résolution hiérachique.
Cache à différents niveaux.
Problèmes de sécurisation.
Indirection :
Plusieurs adresses par nom de domaine (services multiples,
répartition de charge).
Plusieurs noms de domaine par adresse (virtual hosts).
→ Qui gère le DNS ? Qui a droit à un nom de domaine ?
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

DNS (Domain Name System), intermède

Adresses IP routables mais difficiles à mémoriser.


Service pour convertir www.wikipedia.org en 208.80.152.201.
Hiérarchie : org, wikipedia.org, en.wikipedia.org, etc.
Résolution hiérachique.
Cache à différents niveaux.
Problèmes de sécurisation.
Indirection :
Plusieurs adresses par nom de domaine (services multiples,
répartition de charge).
Plusieurs noms de domaine par adresse (virtual hosts).
→ Qui gère le DNS ? Qui a droit à un nom de domaine ?

→ On peut envoyer des messages à une machine nommée.


Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

DNS (Domain Name System), intermède

Les machines préfèrent les chiffres, adresse IP (exemple :


138.48.38.67), les hommes préfèrent les noms (exemple : enpei.dz).
Qui fait la transformation des noms en adresse IP ? Un ordinateur bien
sûr, appelé serveur DNS NS

Google.Com

138.48.38.67
Client
Serveur DNS
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

TCP (Transmission Control Protocol), couche 4

IP n’est pas fiable.


→ TCP fournit des accusés de réception.

IP limite la taille.
→ TCP permet de fragmenter.

IP n’est pas multiplexé.


→ TCP introduit des sessions et des ports. (e.g. 80 pour le Web...
mais possible de forcer : http://localhost:8080/).
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

TCP (Transmission Control Protocol), couche 4

IP n’est pas fiable.


→ TCP fournit des accusés de réception.

IP limite la taille.
→ TCP permet de fragmenter.

IP n’est pas multiplexé.


→ TCP introduit des sessions et des ports. (e.g. 80 pour le Web...
mais possible de forcer : http://localhost:8080/).

→ On peut avoir un canal de communication avec une machine.


Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Table des matières

1 Modèle OSI

2 Couches basses

3 Couches hautes

4 HTTP

5 Headers client

6 Headers serveur

7 Autres aspects
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

TLS (Transport Layer Security), couche 5-6

Messages échangés en clair ! Risques : confidentialité,


e-commerce...
Trois garanties : intégrité, authenticité, confidentialité.
HTTP + TLS = HTTPS. URL en https://. Cadenas...
Cryptographie asymétrique : deux machines sûres peuvent
communiquer de façon sûre contre des attaquants passifs.
Confidentialité persistente (perfect forward secrecy).
Cryptographie symétrique pour des raisons de performance.
Ne protège pas les métadonnées !
Possibilité de fuites (taille, délai...).
Impact légal sur la cryptographie.
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

TLS et X.509

Attaques actives, attaque de l’homme du milieu.

Alice Mallory Bob


KA K'A

K'B KB

Certificats (et messages d’erreur associés). Aussi utilisables


pour l’authentification du client (mais peu utilisé).
Qui sont les autorités de confiance ? (≥ 80 dans Chrome.)
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

TLS et X.509

Attaques actives, attaque de l’homme du milieu.

Alice Mallory Bob


KA K'A

K'B KB

Certificats (et messages d’erreur associés). Aussi utilisables


pour l’authentification du client (mais peu utilisé).
Qui sont les autorités de confiance ? (≥ 80 dans Chrome.)

→ On peut avoir un canal de communication chiffré entre deux


machines.
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

HTTP (HyperText Transfer Protocol), couche 7

Le World Wide Web (WWW).


Protocole de la navigation Web.

→ Pour résumer :
Une machine client.
Un logiciel client : le navigateur.
Une machine serveur.
Un logiciel serveur : le serveur Web.
Un canal de communication fiable et chiffré.
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Les services Internet

Les principaux services d’Internet sont les suivants:

• Le web « WWW »
• Messagerie électronique « email »
• Transfert de fichiers « FTP »
• Le chat « IRC »
• Peer-to-Peer « P2P »
• Visiophonie
• Téléphonie
• …
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Les services Internet


Le service Web

World Wide Web : Ce service permet d'accéder à des pages Web.

Une page Web est écrite en langage HTML (Hyper Text Mark-
up Language) et peut contenir :
• Texte
• Images (statiques ou animées)
• Séquences vidéos
• Son
• Liens hypertexte

Chaque page web est caractérisé par une adresse unique


appelée URL (par exemple www.yahoo.com )
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Les services Internet


Le service Web : URL
URL (Uniform Resource Locator) est un format de nommage universel
pour désigner une ressource sur Internet.

URL se décompose en cinq parties :

• Le nom du protocole
• Identifiant et mot de passe (Facultatif)
• Le nom du serveur
• Le numéro de port (Facultatif si 80)
• Le chemin d'accès à la ressource

Une URL a donc la structure suivante :

http://www.inscription.dz/index.html

protocole Le nom du serveur Le chemin d'accès à la ressource


Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Les services Internet


Le service Web : Fonctionnement

Client
Navigateur Web Serveur Web
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Les services Internet


Le service messagerie électronique

Le service permet d’envoyer et de recevoir des emails et des


documents avec toute personne possédant une adresse électronique.

Exemples d’adresses électronique:

• Nom_prenom@yahoo.fr
• Nom.prenom@gmail.com
• prenom12345@hotmail.com

Le service se base sur deux protocoles:


SMTP : « Simple Mail Transfer Protocol » pour l’envoie des courriers
POP3 : « Post Office Protocol » pour la réception des courriers
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Les services Internet


Le service messagerie électronique
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Les services Internet


Le service Transfert de Fichier

Ce service, comme son nom l’indique, permet de transférer directement


des fichiers d’une machine à une autre.

FTP « File Transfer Protocol » est le Protocole utilisé dans ce service.

Le service est efficace surtout en matière de transfert de gros volumes


de données.

Pour utiliser le service, on peut utiliser le navigateur ou un logiciel FTP


Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Les services Internet


Le service Transfert de Fichiers
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Les services Internet


Le service Chat
Le chat est un service Internet basé sur le protocole IRC « Internet
Relay Chat » (en français, « discussion relayée par Internet »).

Le service permet la communication textuelle sur Internet, Cela se


présente sous forme de messages qui s'affichent en temps réel et
permettent donc une réponse immédiate de l'interlocuteur.
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Architecture Client / Serveur

Serveur
On appelle logiciel serveur un programme qui offre un service sur le
réseau.

Le serveur accepte des requêtes, les traites et renvoie le résultat au


demandeur.

Le terme serveur s'applique à la machine sur laquelle s'exécute le


logiciel serveur.

Pour pouvoir offrir ces services en permanence, le serveur doit avoir


un accès permanent et s'exécuter en permanence.(Adresse IP
Statique).
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Architecture Client / Serveur

Client

On appelle logiciel client un programme qui utilise le service offert


par un serveur.

Le client envoie une requête et reçoit la réponse.

Le terme client s'applique à la machine sur laquelle s'exécute


le logiciel client.

Le client peut-être raccordé par une liaison temporaire (Adresse IP


Dynamique).
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Architecture Client / Serveur

Client
Client

Client
Serveur

Client
Client
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Architecture 3 tiers
Introduction Navigateurs Web Autres clients Web URLs

Comment les gens vont sur le Web ?

On utilise un navigateur Web.


Dépend du système d’exploitation sous-jacent
Fonctionne sur un ordinateur (ou téléphone).
Introduction Navigateurs Web Autres clients Web URLs

Navigateurs Web historiques

Mosaic. Premier navigateur graphique répandu, 1993-1997.


De 80% en 1994 à < 10% en 1996.
Netscape. Lancé en 1994, basé sur Mosaic.
Propriétaire, usage non-commercial gratuit.
80% d’usage en 1996, < 10% en 2001.
N’est plus maintenu depuis 2008.
Internet Explorer. Lancé en 1995, basé sur Spyglass Mosaic.
Propriétaire, fourni avec Windows 95.
IE 6 lancé en 2001 atteint 80% du marché.
Mène au procès antitrust aux USA, 1998-2001.
Firefox. Lancé en 2002 (Netscape libéré en 1998).
Libre et gratuit.
Navigation à onglets.
Attaque le monopole de IE 6.
Introduction Navigateurs Web Autres clients Web URLs

Navigateurs Web actuels


IE. Développement de IE 7 annoncé en 2005, lancé en
2006. Meilleure conformité aux standards.
Edge. Nouveau navigateur de Microsoft, accompagnant
Windows 10.
Firefox. Toujours dans la course.
Safari. Lancé en 2003, navigateur par défaut de Mac OS X
(succédant à Netscape puis IE sous Mac OS).
Opera. Lancé en 1996, mais payant jusqu’en 2000 et financé
par la publicité jusqu’en 2005. Maintenant gratuit
mais propriétaire.
Chrome. Lancé en 2008 par Google. Propriétaire mais version
libre également disponible.
Mobile. Important ! Safari sur iOS, Android browser ou
Chrome sur Android. Firefox mobile, et autres
(Blackberry, Opera Mini, Opera Mobile...)
Introduction Navigateurs Web Autres clients Web URLs

Évolution

70
IE
60 Chrome
Firefox
50 Safari
Opera
Other Desktop
40 Mobile
30

20

10

0
2009 2010 2011 2012 2013 2014

Source : StatCounter.
Introduction Navigateurs Web Autres clients Web URLs

Évolution (mobile)

30
Android
iPhone
25 Safari
Chrome
20 Opera
UC Browser
Nokia
15 Other

10

0
2013 2014 2015

Source : StatCounter.
Introduction Navigateurs Web Autres clients Web URLs

Navigateurs textuels

Aussi : navigateurs auditifs pour les aveugles...


Introduction Navigateurs Web Autres clients Web URLs

Robots

Nombreux programmes automatisés sur le Web :


Crawlers pour moteurs de recherche (indexation) : Googlebot
(Google), bingbot (Bing)...
Crawlers plus obscurs : meanpathbot, ahrefsbot, ezoomsbot,
Career-X bot, msnbot, news bot, seznambot,
ChangeDetection bot ? ...
Lecteurs RSS et agrégateurs.
Harvesters d’adresses email.
Utilisateurs d’API.
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Vue générale
Le langage HTML
Le langage HTML « HyperText Markup Language » a été développé
initialement par Tim Berners-Lee, au CERN

HTML est fondamentalement un langage très simple, dans lequel des


balises (tag) définissent un élément et ses propriétés.

Exemple : la balise <P> définit un paragraphe.


Nouveau Paragraphe
paragraphe centré

<P align=center>HTML emploie des balises (comme <H1> et </H1>)


pour structurer un texte en en-têtes, paragraphes, listes, liens
hypertextes, etc.</P>
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Vue générale
Le langage HTML
Une page HTML se présente fondamentalement comme suit :
<HTML>
<HEAD>
….Entête...
</HEAD>
<BODY>
….contenu...
</BODY>
</HTML>

Nous reviendrons bien sûr plus en détail par la suite sur cette structure.
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Vue générale

Versions HTML

• HTML 1.0 en 1991

• HTML 2.0 en 1995

• HTML 3.2 en 1997

• HTML 4.01 en 1999

• HTML 5 en 2009
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Vue générale
FEUILLES DE STYLES EN CASCADES : CSS
Les CSS : « Cascading Style Sheets »
permettent de définir les styles à appliquer
aux documents HTML, tels que les couleurs,
les alignements, les tailles des polices,
l’aspect des tableaux, etc.

Garantir une présentation homogène des pages HTML et de modifier


cette présentation en ne modifiant qu’un seul document.

Assurer une compatibilité multi-navigateurs (contrairement aux


arrangements réalisés en HTML) et fournissent une facilité de
maintenance pour les sites.
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Vue générale
FEUILLES DE STYLES EN CASCADES : CSS
Exemple

H1
{
font-family: Arial; /* changer le style de la police */
font-size: 14px; /* changer la taille de la police */
color: #00ff00; /* changer la couleur de la police */
}

Dernière version
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Vue générale
FEUILLES DE STYLES EN CASCADES : CSS
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Vue générale
Le langage JavaScript
JavaScript est un langage de scripts qui est incorporé aux balises HTML.

Permet d’améliorer la présentation et l’interactivité des pages Web (tel


que la communication avec les navigateurs).

Un code JavaScript permet de :


• Contrôler la saisie dans un formulaire.
• Accéder aux objets de navigateur.
• Exécuter des commandes du coté client (date système, gestion de la
fenêtre, gestion de navigateur).etc.
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Vue générale
Les langages Dynamiques

• Le langage PHP (Hypertext preprocessor)


emploie son propre langage (dérivé du C++
et de Perl) et permet de nombreuses
fonctionnalités (équivalentes à celles de la
technologie ASP).

• Le langage JSP (Java Server Pages) est la


plus récent parmi ces technologies. il permet
d'utiliser toute la puissance de Java pour
créer des pages web dynamiques.
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Vue générale
Les éditeurs de sites
Un éditeur de site est un logiciel conçu pour faciliter la préparation et la
modification de documents écrits en HTML, PHP, ...

Il existe deux catégories d'éditeur:


• Les éditeurs de texte (Bloc note, notepad++, Visual studio code,...)

• Les éditeurs wYsIwYG "What You See Is what You Get", signifant
littéralement en français "ce que vous voyez est ce que vous
obtenez" (Dreamweaver....)
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Vue générale
Les Systèmes de gestion de contenu (CMS)

CMS est l'acronyme de content management system, soit, en français


"système de gestion de contenu". il s'agit d'un programme informatique
utilisant une base de données et permettant de gérer de A à Z l'apparence
et le contenu d'un site web.

Il permet, à des individus ou à des groupes hiérarchisésn de mettre à jour


le contenu d'un site web à partir d'un panneau d'administration.

Exemple : wordPress, Joomla, presta shop, ...


Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Table des matières

1 Modèle OSI

2 Couches basses

3 Couches hautes

4 HTTP

5 Headers client

6 Headers serveur

7 Autres aspects
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Présentation générale

Standardisé par l’Internet Engineering Task Force (IETF) et le


World Wide Web Consortium (W3C).
Protocole documenté : RFC 2616 (176 pages, 1999).
Extensions : WebSockets, nouveaux headers...
Fonctionnement (très simple en HTTP/1.0)
 connexion

 demande (GET) d ’un document

 renvoi du document (status=200) ou d ’une erreur

 déconnexion
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Dialogue HTTP
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

La requête HTTP

Format d'une requête HTTP


Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

La requête HTTP
Du client vers le serveur, connexion TCP (+TLS).
GET /wiki/Telecom_ParisTech HTTP/1.1
Host: en.wikipedia.org
→ http://en.wikipedia.org/wiki/Telecom_ParisTech.
Méthode Plusieurs possibilités :
GET La plus fréquente.
POST Formulaires et effet de bord.
HEAD Méta-infos seulement.
autres PUT, DELETE...
Chemin C’est celui de l’URL.
Version Ici, 1.1 (essentiellement la seule).
Headers Infos supplémentaires (cf. plus tard).
Corps Passer des paramètres avec POST.
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

La requête HTTP
Méthodes de la requête
 GET
 demande pour obtenir des informations et une zone de données
concernant l ’URI
 HEAD
 demande pour seulement obtenir des informations concernant l
’URI
 POST
 envoie de données (contenu du formulaire vers le serveur, requête
SOAP …) situées dans le corps.
 PUT
 enregistrement du corps de la requête à l ’URI indiqué
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

La requête HTTP
Méthode Get

GET est la méthode permettant de récupérer le contenu d'un fichier.


Exemple :

GET /fichier.php?variable=valeur&variable2=valeur2 HTTP/1.1


Host: www.site.com
Connection: Close
<nouvelle ligne>
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

La requête HTTP

Méthode Post
Il a le même effet que GET sauf que, lui, envoie des données via le corps
de la requête. Il vous faudra spécifier le type des données. Pour un
formulaire HTML, il y a 2 valeurs possibles :

- application/x-www-form-urlencoded (valeur par défaut)


- multipart/form-data (utilisée notamment pour le download de fichiers)
Exemple :
POST /fichier.php HTTP/1.1
Host: www.site.com
Content-type: application/x-www-form-urlencoded
Content-Length: 33
<nouvelle ligne>
variable=valeur&variable2=valeur2
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

La réponse HTTP

Format d'une requête HTTP


Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

La réponse HTTP

Du serveur vers le client, dans la même connexion.


HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8

<!DOCTYPE html>
<html>
<head>
(...)
Code d’état et explication.
Headers.
Réponse (e.g., corps de la page).
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Codes

1xx Information
2xx Succès
200 : OK
3xx Redirection
301 : permanente
302 : temporaire
304 : cf. le cache
4xx Erreur client
400 : erreur de syntaxe
401 : authentification nécessaire
403 : interdit
404 : non trouvé
5xx Erreur serveur
500 : erreur interne du serveur
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Chemins et paramètres

Les chemins sont hiérachiques (séparateur : /).


Conventions Unix : http://en.wikipedia.org/./wiki/../
Ajout possible de paramètres non hiérarchique.
Exemple : https://www.google.com/search?q=telecom&
ie=utf-8&oe=utf-8&client=iceweasel-a
Caractères spéciaux encodés :
https://fr.wikipedia.org/wiki/T%C3%A9l%C3%A9com_
ParisTech
Utile pour les formulaires, autres encodages (cf. plus loin).
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Table des matières

1 Modèle OSI

2 Couches basses

3 Couches hautes

4 HTTP

5 Headers client

6 Headers serveur

7 Autres aspects
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Header Host

Plusieurs sites Web par machine :


→ fr.wikipedia.org et en.wikipedia.org.
Le nom de domaine est perdu après la résolution DNS.
Header pour repréciser le domaine attendu.
Host: en.wikipedia.org
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Header User-Agent

Identifier le navigateur utilisé.


Est-ce un ordinateur ou un téléphone ?
Est-ce un humain ou un robot ?
Permet de contourner des bugs.
Pas de garanties !
Délires historiques (tout le monde dit ”Mozilla/5.0”).
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0)
Gecko/20130810 Firefox/17.0 Iceweasel/17.0.8
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Header Accept et Accept-*

Plusieurs versions alternatives d’une ressource :


Type de fichier. Différents formats de page Web...
Langue. Anglais, français...
Encodage. Compression à la volée.
Négociation de contenu.
Indique plusieurs choix et des priorités.
En pratique, le type de fichier n’est pas vraiment utilisé.

Accept: text/html,application/xhtml+xml,
application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Table des matières

1 Modèle OSI

2 Couches basses

3 Couches hautes

4 HTTP

5 Headers client

6 Headers serveur

7 Autres aspects
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Header Server

Identifie le serveur.
(Toujours) pas de garanties !
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Header Content-Type et Content-Length

Plusieurs types de resources sur le Web : pages Web, mais


aussi images, texte, PDF, multimédia...
→ Nécessité d’identifier le type (quel document, quel format ?).
Internet media type, historiquement Multipurpose Internet
Mail Extensions (MIME).
Plusieurs encodages (formats de représentation du texte) :
→ Nécessité de préciser l’encodage pour certains documents.
Afficher une barre de progression ?
→ Préciser la longueur à l’avance.

Content-Type: text/html; charset=UTF-8


Content-Length: 4242
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Encodages
Un encodage va numéroter les caractères et encoder les numéros.
ASCII. 128 caractères. Pas d’accents. 7 bits.
ISO-8859. 128 caractères en plus pour compléter ASCII.
1 octet. Français : ISO-8859-1 alias Latin-1.
Unicode. Numéroter tous les caractères (> 100 000).
UTF-32. Représenter les caractères Unicode. 4 octets.
UTF-8. Un octet par caractère ASCII (et compatibilité),
davantage pour les non-ASCII. Longueur variable.
Encodage ASCII Encodage Latin-1 Encodage UTF-8
nb repr. nb repr. nb repr.
A 65 01000001 65 01000001 65 01000001
é - - 233 11101001 233 11000011 10101001
ń - - - - 324 11000101 10000011

→ En pratique : utiliser UTF-8.


Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Table des matières

1 Modèle OSI

2 Couches basses

3 Couches hautes

4 HTTP

5 Headers client

6 Headers serveur

7 Autres aspects
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Authentification HTTP Basic

Mécanisme simple de contrôle d’accès.


Le serveur :
répond à une requête avec 401 Not Authorized
identifie un domaine d’authentification avec le header
WWW-Authenticate: Basic realm="foo"
Le client :
encode réversiblement login et mot de passe : digest
renouvelle la requête avec le header :
Authorization: Basic digest
→ Aucune sécurité si on n’utilise pas HTTPS !
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Proxies

Proxy (serveur mandataire) : effectue (ou relaie) des requêtes


Web pour le compte d’autrui.
Peut s’utiliser côté client ou côté serveur.
Nombreuses utilisations :
Filtrer ou censurer le Web (employeurs, écoles, régimes
totalitaires, contrôle parental, etc.).
Conserver un journal de l’activité.
Conserver un cache (cache commun à plusieurs utilisateurs).
Anonymisation (cacher la véritable origine de la requête).
Autres modifications : traduction, etc.
Avec SSL, c’est plus difficile !
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Cache

Sauvegarder le résultat d’une requête pour la réutiliser.


Plusieurs caches possibles : proxies, ou le navigateur.
Serveur :
Cache-Control Indiquer si on peut conserver en cache :
public, private, no-cache/no-store.
Expires Date d’expiration.
ETag Identifiant de version.
Client :
Pragma: no-cache Interdire aux proxies d’utiliser leur cache.
If-Modified-Since Si modifié depuis une certaine date.
If-None-Match Si l’identifiant de version a changé.
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Cookies

Pas de sessions en HTTP.


Le serveur peut demander au client de mémoriser une valeur :
Set-Cookie: nom=valeur; option1; option2 :
expires date d’expiration (peut être lointaine)
domain limite la portée (domaine, sous-domaine)
path limite la portée (sous-chemin)
secure seulement sur SSL
httpOnly pas lisible par JavaScript
Le client fournit la valeur avec chaque requête :
Cookie: nom=valeur
Le client peut lire et modifier des cookies (pas de garanties) et
les effacer (vie privée)
Modèle OSI Couches basses Couches hautes HTTP Headers client Headers serveur Autres aspects

Utilisation des cookies

Stocker un identifiant de session opaque. (Interception ?)


Garder l’utilisateur connecté sur de longues périodes.
Traquer un utilisateur de façon unique (même sans compte).
Risques :
Sécurité Il ne faut pas qu’un cookie soit divulgué au
mauvais site !
Vie privée (Mais le cache est exactement équivalent !)

Vous aimerez peut-être aussi