0% ont trouvé ce document utile (0 vote)
31 vues96 pages

HTTP

Le document présente le protocole HTTP, qui permet le transfert de documents web entre un client et un serveur via une architecture client-serveur. Il décrit les différentes versions d'HTTP, les types de requêtes (GET, POST, PUT) et leurs structures, ainsi que les en-têtes associés. Enfin, il souligne l'importance de l'HTTPS pour la sécurité des échanges.

Transféré par

oubaida kherfane
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
31 vues96 pages

HTTP

Le document présente le protocole HTTP, qui permet le transfert de documents web entre un client et un serveur via une architecture client-serveur. Il décrit les différentes versions d'HTTP, les types de requêtes (GET, POST, PUT) et leurs structures, ainsi que les en-têtes associés. Enfin, il souligne l'importance de l'HTTPS pour la sécurité des échanges.

Transféré par

oubaida kherfane
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Le protocole HTTP

M. BOUMEDIENE

Institut National des Télécommunications et des Technologies


de l’Information et de la Communication
e-mail: mboumediene[at][Link]

27 avril 2021

1/34 Mohammed Boumediene - INTTIC Technologies web 1


Plan

1 Présentation de HTTP

2 Requêtes HTTP

3 En-têtes des requêtes HTTP

4 Réponses HTTP

5 En-têtes des réponse HTTP

6 Un peu de pratique

2/34 Mohammed Boumediene - INTTIC Technologies web 1


Présentation de HTTP

Plan

1 Présentation de HTTP

2 Requêtes HTTP

3 En-têtes des requêtes HTTP

4 Réponses HTTP

5 En-têtes des réponse HTTP

6 Un peu de pratique

3/34 Mohammed Boumediene - INTTIC Technologies web 1


Présentation de HTTP

Navigateur client/Serveur Web

Le service web se base sur une architecture client-serveur :

4/34 Mohammed Boumediene - INTTIC Technologies web 1


Présentation de HTTP

Navigateur client/Serveur Web

Le service web se base sur une architecture client-serveur :


Le client utilise un logiciel, navigateur web, permettant la consultation des documents ou
pages web.
⇒le client envoie une requête (demande) au serveur en indiquant la page souhaitée.

4/34 Mohammed Boumediene - INTTIC Technologies web 1


Présentation de HTTP

Navigateur client/Serveur Web

Le service web se base sur une architecture client-serveur :


Le client utilise un logiciel, navigateur web, permettant la consultation des documents ou
pages web.
⇒le client envoie une requête (demande) au serveur en indiquant la page souhaitée.
Le serveur utilise un logiciel, un serveur ou un démon web comme Apache
⇒Apache écoute/attend les requêtes des clients
⇒ A la réception d’une requête, le serveur recherche le document demandé et l’envoie au
client ce qui constitue une réponse.

4/34 Mohammed Boumediene - INTTIC Technologies web 1


Présentation de HTTP

Service web

Pour assurer le service web entre les clients et les serveurs il faut :

5/34 Mohammed Boumediene - INTTIC Technologies web 1


Présentation de HTTP

Service web

Pour assurer le service web entre les clients et les serveurs il faut :
Un espace de noms global pour identifier les pages web
⇒utiliser les URLs.

5/34 Mohammed Boumediene - INTTIC Technologies web 1


Présentation de HTTP

Service web

Pour assurer le service web entre les clients et les serveurs il faut :
Un espace de noms global pour identifier les pages web
⇒utiliser les URLs.
Un protocole pour le transfert des requêtes et réponses entre les clients et les serveurs
⇒le protocole HTTP

5/34 Mohammed Boumediene - INTTIC Technologies web 1


Présentation de HTTP

Service web

Pour assurer le service web entre les clients et les serveurs il faut :
Un espace de noms global pour identifier les pages web
⇒utiliser les URLs.
Un protocole pour le transfert des requêtes et réponses entre les clients et les serveurs
⇒le protocole HTTP
Un langage à balises (markup) pour la description de documents hypertextes, c’est le langage HTML
(HyperText Markup Language)

5/34 Mohammed Boumediene - INTTIC Technologies web 1


Présentation de HTTP

HyperText Transfert Protocol


HTTP assure le transfert de documents web (hypertexte) identifiés par leur URL entre un client
(navigateur) et un serveur web

6/34 Mohammed Boumediene - INTTIC Technologies web 1


Présentation de HTTP

HyperText Transfert Protocol


HTTP assure le transfert de documents web (hypertexte) identifiés par leur URL entre un client
(navigateur) et un serveur web
HTTP est inventé par Tim Berners-Lee en 1989

6/34 Mohammed Boumediene - INTTIC Technologies web 1


Présentation de HTTP

HyperText Transfert Protocol


HTTP assure le transfert de documents web (hypertexte) identifiés par leur URL entre un client
(navigateur) et un serveur web
HTTP est inventé par Tim Berners-Lee en 1989
Version HTTP/0.9 ⇒ La première version
Version HTTP/1.0 en 1996
Version HTTP/1.1 est apparue en début 1997
⇒ standard
⇒ modifiée en 1999
Version HTTP/2.0 en juin 2014/ standard en mai 2015

6/34 Mohammed Boumediene - INTTIC Technologies web 1


Présentation de HTTP

HyperText Transfert Protocol


HTTP assure le transfert de documents web (hypertexte) identifiés par leur URL entre un client
(navigateur) et un serveur web
HTTP est inventé par Tim Berners-Lee en 1989
Version HTTP/0.9 ⇒ La première version
Version HTTP/1.0 en 1996
Version HTTP/1.1 est apparue en début 1997
⇒ standard
⇒ modifiée en 1999
Version HTTP/2.0 en juin 2014/ standard en mai 2015
⇒ Réduire la latence ⇒ (applications) web rapide, simple, et robuste
⇒ Multiplexage des requêtes/réponses
⇒ Compression des en-têtes HTTP

6/34 Mohammed Boumediene - INTTIC Technologies web 1


Présentation de HTTP

HyperText Transfert Protocol


HTTP assure le transfert de documents web (hypertexte) identifiés par leur URL entre un client
(navigateur) et un serveur web
HTTP est inventé par Tim Berners-Lee en 1989
Version HTTP/0.9 ⇒ La première version
Version HTTP/1.0 en 1996
Version HTTP/1.1 est apparue en début 1997
⇒ standard
⇒ modifiée en 1999
Version HTTP/2.0 en juin 2014/ standard en mai 2015
⇒ Réduire la latence ⇒ (applications) web rapide, simple, et robuste
⇒ Multiplexage des requêtes/réponses
⇒ Compression des en-têtes HTTP
HTTPS (HTTP Secure) est une version sécurisée de HTTP
⇒ chiffre/authentifie les requêtes et les réponses échangées entre clients et serveurs

6/34 Mohammed Boumediene - INTTIC Technologies web 1


Présentation de HTTP

HyperText Transfert Protocol


HTTP assure le transfert de documents web (hypertexte) identifiés par leur URL entre un client
(navigateur) et un serveur web
HTTP est inventé par Tim Berners-Lee en 1989
Version HTTP/0.9 ⇒ La première version
Version HTTP/1.0 en 1996
Version HTTP/1.1 est apparue en début 1997
⇒ standard
⇒ modifiée en 1999
Version HTTP/2.0 en juin 2014/ standard en mai 2015
⇒ Réduire la latence ⇒ (applications) web rapide, simple, et robuste
⇒ Multiplexage des requêtes/réponses
⇒ Compression des en-têtes HTTP
HTTPS (HTTP Secure) est une version sécurisée de HTTP
⇒ chiffre/authentifie les requêtes et les réponses échangées entre clients et serveurs
HTTP ⇒ port 80 (par défaut)
HTTPS ⇒ port 443 (par défaut)
6/34 Mohammed Boumediene - INTTIC Technologies web 1
Présentation de HTTP

HyperText Transfert Protocol


HTTP/2.0 est un protocole binaire
⇒ Découpage (framing) plus simple
⇒ Repérer facilement le début/fin des trame HTTP

Figure 1: Source = [Link]

7/34 Mohammed Boumediene - INTTIC Technologies web 1


Requêtes HTTP

Plan

1 Présentation de HTTP

2 Requêtes HTTP

3 En-têtes des requêtes HTTP

4 Réponses HTTP

5 En-têtes des réponse HTTP

6 Un peu de pratique

8/34 Mohammed Boumediene - INTTIC Technologies web 1


Requêtes HTTP

Structure d’une requête HTTP


HTTP/1.1 est un protocole texte⇒ Requête est un ensemble de lignes envoyé

9/34 Mohammed Boumediene - INTTIC Technologies web 1


Requêtes HTTP

Structure d’une requête HTTP


HTTP/1.1 est un protocole texte⇒ Requête est un ensemble de lignes envoyé

9/34 Mohammed Boumediene - INTTIC Technologies web 1


Requêtes HTTP

Structure d’une requête HTTP


HTTP/1.1 est un protocole texte⇒ Requête est un ensemble de lignes envoyé
La ligne de commande ou de la requête :
la méthode à appliquer par le serveur
la cible ou le document web concerné + la version du protocole HTTP

9/34 Mohammed Boumediene - INTTIC Technologies web 1


Requêtes HTTP

Structure d’une requête HTTP


HTTP/1.1 est un protocole texte⇒ Requête est un ensemble de lignes envoyé
La ligne de commande ou de la requête :
la méthode à appliquer par le serveur
la cible ou le document web concerné + la version du protocole HTTP
L’en-tête de la requête :
un ensemble de champs qui donnent une description supplémentaire sur la requête et/ou le
client
chaque champ sur une ligne (en-tête ou nom du champ : valeur)
⇒par exemple le navigateur utilisé, le système d’exploitation, etc.

9/34 Mohammed Boumediene - INTTIC Technologies web 1


Requêtes HTTP

Structure d’une requête HTTP


HTTP/1.1 est un protocole texte⇒ Requête est un ensemble de lignes envoyé
La ligne de commande ou de la requête :
la méthode à appliquer par le serveur
la cible ou le document web concerné + la version du protocole HTTP
L’en-tête de la requête :
un ensemble de champs qui donnent une description supplémentaire sur la requête et/ou le
client
chaque champ sur une ligne (en-tête ou nom du champ : valeur)
⇒par exemple le navigateur utilisé, le système d’exploitation, etc.
Le corps de la requête : un ensemble de lignes optionnelles permettant l’envoie de données par la méthode
POST lorsqu’on souhaite envoyer un formulaire au serveur.

9/34 Mohammed Boumediene - INTTIC Technologies web 1


Requêtes HTTP

Méthode GET
GET permet à un client de demander un document web au serveur

10/34 Mohammed Boumediene - INTTIC Technologies web 1


Requêtes HTTP

Méthode GET
GET permet à un client de demander un document web au serveur
Par exemple, lorsqu’un client clique sur un lien, son navigateur envoie une requête GET au serveur en
spécifiant l’URL de la ressource demandée.

10/34 Mohammed Boumediene - INTTIC Technologies web 1


Requêtes HTTP

Méthode GET
GET permet à un client de demander un document web au serveur
Par exemple, lorsqu’un client clique sur un lien, son navigateur envoie une requête GET au serveur en
spécifiant l’URL de la ressource demandée.
Si le serveur peut satisfaire la demande ⇒ une réponse 200 OK est envoyée au navigateur client ainsi que
la ressource demandée ([Link])

10/34 Mohammed Boumediene - INTTIC Technologies web 1


Requêtes HTTP

Méthode GET
GET permet à un client de demander un document web au serveur
Par exemple, lorsqu’un client clique sur un lien, son navigateur envoie une requête GET au serveur en
spécifiant l’URL de la ressource demandée.
Si le serveur peut satisfaire la demande ⇒ une réponse 200 OK est envoyée au navigateur client ainsi que
la ressource demandée ([Link])
Dans le cas contraire, une réponse d’erreur est envoyée pour indiquer la non satisfaction de la requête

10/34 Mohammed Boumediene - INTTIC Technologies web 1


Requêtes HTTP

Méthode GET
Avec la méthode GET, le client peut transmettre des données au serveur et cela via la ligne de commande

11/34 Mohammed Boumediene - INTTIC Technologies web 1


Requêtes HTTP

Méthode GET
Avec la méthode GET, le client peut transmettre des données au serveur et cela via la ligne de commande
Cependant, il faut ajouter les données, qui sont sous forme d’un ensemble de variables, à l’URL spécifiée

11/34 Mohammed Boumediene - INTTIC Technologies web 1


Requêtes HTTP

Méthode GET
Avec la méthode GET, le client peut transmettre des données au serveur et cela via la ligne de commande
Cependant, il faut ajouter les données, qui sont sous forme d’un ensemble de variables, à l’URL spécifiée
GET /[Link]?variable1=valeur1&variable2=valeur2 HTTP/1.1
La liste des variables doit être séparée de l’URL par "?",
Les variables sont séparées entre elles par "&".

11/34 Mohammed Boumediene - INTTIC Technologies web 1


Requêtes HTTP

Méthode GET
Avec la méthode GET, le client peut transmettre des données au serveur et cela via la ligne de commande
Cependant, il faut ajouter les données, qui sont sous forme d’un ensemble de variables, à l’URL spécifiée
GET /[Link]?variable1=valeur1&variable2=valeur2 HTTP/1.1
La liste des variables doit être séparée de l’URL par "?",
Les variables sont séparées entre elles par "&".
Les données envoyées au serveur apparaissent en clair dans l’URL et ne peuvent dépasser une taille limite
(2000 caractères)

11/34 Mohammed Boumediene - INTTIC Technologies web 1


Requêtes HTTP

Methode POST
POST est similaire à la méthode GET

12/34 Mohammed Boumediene - INTTIC Technologies web 1


Requêtes HTTP

Methode POST
POST est similaire à la méthode GET
Les données sont envoyées via le corps de la requête et non par l’URL

12/34 Mohammed Boumediene - INTTIC Technologies web 1


Requêtes HTTP

Methode POST
POST est similaire à la méthode GET
Les données sont envoyées via le corps de la requête et non par l’URL
POST est généralement utilisée pour demander un traitement au serveur

12/34 Mohammed Boumediene - INTTIC Technologies web 1


Requêtes HTTP

Methode POST
POST est similaire à la méthode GET
Les données sont envoyées via le corps de la requête et non par l’URL
POST est généralement utilisée pour demander un traitement au serveur
Le serveur retourne le résultat dans le corps d’une réponse 200 OK

12/34 Mohammed Boumediene - INTTIC Technologies web 1


Requêtes HTTP

Methode POST
POST est similaire à la méthode GET
Les données sont envoyées via le corps de la requête et non par l’URL
POST est généralement utilisée pour demander un traitement au serveur
Le serveur retourne le résultat dans le corps d’une réponse 200 OK
Dans le cas de problème, le serveur retourne au client une réponse d’erreur

12/34 Mohammed Boumediene - INTTIC Technologies web 1


Requêtes HTTP

Méthode PUT
PUT est similaire à la méthode POST
⇒Envoyer des données au serveur

13/34 Mohammed Boumediene - INTTIC Technologies web 1


Requêtes HTTP

Méthode PUT
PUT est similaire à la méthode POST
⇒Envoyer des données au serveur
Avec POST l’URL identifie la ressource qui traite les données sur le serveur
⇒URL indique un programme ou un script

13/34 Mohammed Boumediene - INTTIC Technologies web 1


Requêtes HTTP

Méthode PUT
PUT est similaire à la méthode POST
⇒Envoyer des données au serveur
Avec POST l’URL identifie la ressource qui traite les données sur le serveur
⇒URL indique un programme ou un script
avec PUT l’URL identifie la ressource que le serveur doit mettre à jour avec les données envoyées
⇒URL indique le chemin et le nom d’un fichier sauvegardé sur le serveur

13/34 Mohammed Boumediene - INTTIC Technologies web 1


Requêtes HTTP

Méthode DELETE

DELETE offre la possibilité au client de supprimer une ressource du serveur

14/34 Mohammed Boumediene - INTTIC Technologies web 1


Requêtes HTTP

Méthode DELETE

DELETE offre la possibilité au client de supprimer une ressource du serveur


Le client précise le chemin et le nom de la ressource à supprimer via l’URL de la ligne de commande

14/34 Mohammed Boumediene - INTTIC Technologies web 1


Requêtes HTTP

Méthode DELETE

DELETE offre la possibilité au client de supprimer une ressource du serveur


Le client précise le chemin et le nom de la ressource à supprimer via l’URL de la ligne de commande
Le serveur répond en indiquant si l’opération a réussi (200 OK) ou pas
Il est possible que le serveur retourne aussi des données au client

14/34 Mohammed Boumediene - INTTIC Technologies web 1


Requêtes HTTP

Méthode OPTIONS
OPTIONS permet à un client de se renseigner sur les capacités du serveur pour la prise en charge de HTTP

15/34 Mohammed Boumediene - INTTIC Technologies web 1


Requêtes HTTP

Méthode OPTIONS
OPTIONS permet à un client de se renseigner sur les capacités du serveur pour la prise en charge de HTTP
Si le client précise une URL dans la ligne de commande
⇒le serveur retourne les opérations/options possibles sur la ressource identifiée par cette URL

15/34 Mohammed Boumediene - INTTIC Technologies web 1


Requêtes HTTP

Méthode OPTIONS
OPTIONS permet à un client de se renseigner sur les capacités du serveur pour la prise en charge de HTTP
Si le client précise une URL dans la ligne de commande
⇒le serveur retourne les opérations/options possibles sur la ressource identifiée par cette URL
Si un "*" est mentionné à la place d’une URL
⇒ le serveur retourne ses options globales, c.-a.-d. sur l’ensemble de ses ressources

15/34 Mohammed Boumediene - INTTIC Technologies web 1


Requêtes HTTP

Méthode HEAD

HEAD est quasi-identique à GET excepté que la ressource demandée n’est pas retournée au client

16/34 Mohammed Boumediene - INTTIC Technologies web 1


Requêtes HTTP

Méthode HEAD

HEAD est quasi-identique à GET excepté que la ressource demandée n’est pas retournée au client
HEAD permet au client de vérifier l’existence d’une ressource sur le serveur

16/34 Mohammed Boumediene - INTTIC Technologies web 1


Requêtes HTTP

Méthode HEAD

HEAD est quasi-identique à GET excepté que la ressource demandée n’est pas retournée au client
HEAD permet au client de vérifier l’existence d’une ressource sur le serveur
Le serveur retourne une réponse avec un corps vide
HEAD est utilisée pour vérifier l’état des liens hypertextes sans pour autant consommer la bande passante

16/34 Mohammed Boumediene - INTTIC Technologies web 1


Requêtes HTTP

Méthode TRACE
TRACE sollicite le serveur pour qu’il retourne au client les en-têtes de la requête reçue dans le corps de la
réponse

17/34 Mohammed Boumediene - INTTIC Technologies web 1


Requêtes HTTP

Méthode TRACE
TRACE sollicite le serveur pour qu’il retourne au client les en-têtes de la requête reçue dans le corps de la
réponse
Le retour de ces en-têtes permet d’analyser la route entre le client et le serveur
⇒les proxies, les passerelles ou bien les pare-feux présents entre le client et le serveur

17/34 Mohammed Boumediene - INTTIC Technologies web 1


Requêtes HTTP

Méthode TRACE
TRACE sollicite le serveur pour qu’il retourne au client les en-têtes de la requête reçue dans le corps de la
réponse
Le retour de ces en-têtes permet d’analyser la route entre le client et le serveur
⇒les proxies, les passerelles ou bien les pare-feux présents entre le client et le serveur
Cette découverte est possible puisque les serveurs intermédiaires ont tendance à ajouter des en-têtes dans
les requêtes

17/34 Mohammed Boumediene - INTTIC Technologies web 1


En-têtes des requêtes HTTP

Plan

1 Présentation de HTTP

2 Requêtes HTTP

3 En-têtes des requêtes HTTP

4 Réponses HTTP

5 En-têtes des réponse HTTP

6 Un peu de pratique

18/34 Mohammed Boumediene - INTTIC Technologies web 1


En-têtes des requêtes HTTP

Accept

Accept donne la possibilité au client d’indiquer quels types de contenu accepte-il dans le corps des
réponses envoyées
⇒Accept: text/plain; q=0.5, text/html, text/x-dvi; q=0.8

19/34 Mohammed Boumediene - INTTIC Technologies web 1


En-têtes des requêtes HTTP

Accept

Accept donne la possibilité au client d’indiquer quels types de contenu accepte-il dans le corps des
réponses envoyées
⇒Accept: text/plain; q=0.5, text/html, text/x-dvi; q=0.8
Accept définit une liste de types de contenu, séparés par des virgules
Chaque type peut être associé à un facteur de qualité "q" traduisant la préférence relative du client
Ce facteur varie de 0 à 1, les types n’ayant pas facteur mentionné cela veut dire que q = 1
Ainsi, dans l’exemple le client peut accepter trois types de contenu:
text/plain; q=0.5
text/html
text/x-dvi; q=0.8

19/34 Mohammed Boumediene - INTTIC Technologies web 1


En-têtes des requêtes HTTP

Accept-Charset

Accept-Charset permet au client de préciser au serveur sa préférence pour le jeu de caractères utilisé pour
l’encodages du contenu

20/34 Mohammed Boumediene - INTTIC Technologies web 1


En-têtes des requêtes HTTP

Accept-Charset

Accept-Charset permet au client de préciser au serveur sa préférence pour le jeu de caractères utilisé pour
l’encodages du contenu
Accept-Charset se base sur la même notation que l’en-tête Accept
⇒Une liste de jeu de caractères est donnée ainsi que leur facteur de qualité
⇒Accept-Charset: unicode, *; q=0.8

20/34 Mohammed Boumediene - INTTIC Technologies web 1


En-têtes des requêtes HTTP

Accept-Charset

Accept-Charset permet au client de préciser au serveur sa préférence pour le jeu de caractères utilisé pour
l’encodages du contenu
Accept-Charset se base sur la même notation que l’en-tête Accept
⇒Une liste de jeu de caractères est donnée ainsi que leur facteur de qualité
⇒Accept-Charset: unicode, *; q=0.8
Le client indique sa préférence pour le jeu de caractères Unicode

20/34 Mohammed Boumediene - INTTIC Technologies web 1


En-têtes des requêtes HTTP

Accept-Charset

Accept-Charset permet au client de préciser au serveur sa préférence pour le jeu de caractères utilisé pour
l’encodages du contenu
Accept-Charset se base sur la même notation que l’en-tête Accept
⇒Une liste de jeu de caractères est donnée ainsi que leur facteur de qualité
⇒Accept-Charset: unicode, *; q=0.8
Le client indique sa préférence pour le jeu de caractères Unicode
Il indique aussi qu’il accepte tout autre type d’encodage (*) avec une préférence relative de 0.8

20/34 Mohammed Boumediene - INTTIC Technologies web 1


En-têtes des requêtes HTTP

Accept-Encoding
Accept-Encoding liste les encodages acceptés par le client

21/34 Mohammed Boumediene - INTTIC Technologies web 1


En-têtes des requêtes HTTP

Accept-Encoding
Accept-Encoding liste les encodages acceptés par le client
Accept-Encoding: compress, gzip; q=0.9, identity; q=0.8

21/34 Mohammed Boumediene - INTTIC Technologies web 1


En-têtes des requêtes HTTP

Accept-Encoding
Accept-Encoding liste les encodages acceptés par le client
Accept-Encoding: compress, gzip; q=0.9, identity; q=0.8
Le client précise sa préférence pour un format compressé de unix compress, ensuite le format gzip

21/34 Mohammed Boumediene - INTTIC Technologies web 1


En-têtes des requêtes HTTP

Accept-Encoding
Accept-Encoding liste les encodages acceptés par le client
Accept-Encoding: compress, gzip; q=0.9, identity; q=0.8
Le client précise sa préférence pour un format compressé de unix compress, ensuite le format gzip
Si ces formats ne sont pas supportés par le serveur, l’encodage identity peut-être utilisé

Table 1: Encodage des messages HTTP

Identifiant Signification
compresse C’est le format de compression issu des systèmes Unix. Cet encodage est basé sur l’algorithme
est Lempel-Zip-Welch.
deflate Ce format est basé sur l’algorithme Lempel-Zip et le codage de Huffman.
gzip Le format GNU zip est une évolution de deflate. gzip est basé sur le codage Lempel-Zip et
un CRC de 32 bits.
identity Indique qu’aucune compression, ni modification n’a été apportée aux données.
br Le format Brotli est basé sur une variante moderne de Lempel-Zip et présente des perfor-
mances intéressantes point de vue temps de compression/decompression.

21/34 Mohammed Boumediene - INTTIC Technologies web 1


En-têtes des requêtes HTTP

Accept-Language

Accept-Language laisse au client la possibilité de renseigner sa préférence pour la langue des réponses

22/34 Mohammed Boumediene - INTTIC Technologies web 1


En-têtes des requêtes HTTP

Accept-Language

Accept-Language laisse au client la possibilité de renseigner sa préférence pour la langue des réponses
Il suffit juste de lister les langues acceptées
⇒Accept-Language: en-us, en-gb; q=0.8

22/34 Mohammed Boumediene - INTTIC Technologies web 1


En-têtes des requêtes HTTP

Accept-Language

Accept-Language laisse au client la possibilité de renseigner sa préférence pour la langue des réponses
Il suffit juste de lister les langues acceptées
⇒Accept-Language: en-us, en-gb; q=0.8
Sur l’exemple, le client indique sa préférence pour l’anglais américain (en-us) par rapport à l’anglais
britannique (en-gb avec q=0.8)

22/34 Mohammed Boumediene - INTTIC Technologies web 1


En-têtes des requêtes HTTP

From, Host, User-Agent, Referer, et Cookie


From pour que le client renseigne son adresse mail

23/34 Mohammed Boumediene - INTTIC Technologies web 1


En-têtes des requêtes HTTP

From, Host, User-Agent, Referer, et Cookie


From pour que le client renseigne son adresse mail
Host permet de préciser le nom du domaine du site web concerné par la requête

23/34 Mohammed Boumediene - INTTIC Technologies web 1


En-têtes des requêtes HTTP

From, Host, User-Agent, Referer, et Cookie


From pour que le client renseigne son adresse mail
Host permet de préciser le nom du domaine du site web concerné par la requête
Il est possible d’héberger plusieurs domaines, par exemple "[Link]" et "[Link]", sur un
même serveur physique et du coup comment le serveur va-t-il déterminer à qui est destinée réellement la
requête ?
Avec l’introduction de Host ([Link]), le serveur peut satisfaire sans ambiguïté la requête du
client

23/34 Mohammed Boumediene - INTTIC Technologies web 1


En-têtes des requêtes HTTP

From, Host, User-Agent, Referer, et Cookie


From pour que le client renseigne son adresse mail
Host permet de préciser le nom du domaine du site web concerné par la requête
Il est possible d’héberger plusieurs domaines, par exemple "[Link]" et "[Link]", sur un
même serveur physique et du coup comment le serveur va-t-il déterminer à qui est destinée réellement la
requête ?
Avec l’introduction de Host ([Link]), le serveur peut satisfaire sans ambiguïté la requête du
client
User-Agent indique la signature du navigateur web du client comme le nom du programme ainsi que sa
version

23/34 Mohammed Boumediene - INTTIC Technologies web 1


En-têtes des requêtes HTTP

From, Host, User-Agent, Referer, et Cookie


From pour que le client renseigne son adresse mail
Host permet de préciser le nom du domaine du site web concerné par la requête
Il est possible d’héberger plusieurs domaines, par exemple "[Link]" et "[Link]", sur un
même serveur physique et du coup comment le serveur va-t-il déterminer à qui est destinée réellement la
requête ?
Avec l’introduction de Host ([Link]), le serveur peut satisfaire sans ambiguïté la requête du
client
User-Agent indique la signature du navigateur web du client comme le nom du programme ainsi que sa
version
Referer indique au serveur où le client a récupéré l’URL présente dans la requête
⇒Par exemple, si un client clique sur un lien se trouvant sur une page, alors le serveur déterminera l’URL
de cette page grâce à l’en-tête Referer

23/34 Mohammed Boumediene - INTTIC Technologies web 1


En-têtes des requêtes HTTP

From, Host, User-Agent, Referer, et Cookie


From pour que le client renseigne son adresse mail
Host permet de préciser le nom du domaine du site web concerné par la requête
Il est possible d’héberger plusieurs domaines, par exemple "[Link]" et "[Link]", sur un
même serveur physique et du coup comment le serveur va-t-il déterminer à qui est destinée réellement la
requête ?
Avec l’introduction de Host ([Link]), le serveur peut satisfaire sans ambiguïté la requête du
client
User-Agent indique la signature du navigateur web du client comme le nom du programme ainsi que sa
version
Referer indique au serveur où le client a récupéré l’URL présente dans la requête
⇒Par exemple, si un client clique sur un lien se trouvant sur une page, alors le serveur déterminera l’URL
de cette page grâce à l’en-tête Referer
Le client peut introduire dans la requête un Cookie précédemment envoyé par un serveur afin que ce
dernier personnalise sa réponse

23/34 Mohammed Boumediene - INTTIC Technologies web 1


En-têtes des requêtes HTTP

From, Host, User-Agent, Referer, et Cookie


From pour que le client renseigne son adresse mail
Host permet de préciser le nom du domaine du site web concerné par la requête
Il est possible d’héberger plusieurs domaines, par exemple "[Link]" et "[Link]", sur un
même serveur physique et du coup comment le serveur va-t-il déterminer à qui est destinée réellement la
requête ?
Avec l’introduction de Host ([Link]), le serveur peut satisfaire sans ambiguïté la requête du
client
User-Agent indique la signature du navigateur web du client comme le nom du programme ainsi que sa
version
Referer indique au serveur où le client a récupéré l’URL présente dans la requête
⇒Par exemple, si un client clique sur un lien se trouvant sur une page, alors le serveur déterminera l’URL
de cette page grâce à l’en-tête Referer
Le client peut introduire dans la requête un Cookie précédemment envoyé par un serveur afin que ce
dernier personnalise sa réponse
Cookie peut lister un comme plusieurs cookies à la fois
⇒Cookie: SSID=ahmed1254; shopPHP=u65iklo546
23/34 Mohammed Boumediene - INTTIC Technologies web 1
Réponses HTTP

Plan

1 Présentation de HTTP

2 Requêtes HTTP

3 En-têtes des requêtes HTTP

4 Réponses HTTP

5 En-têtes des réponse HTTP

6 Un peu de pratique

24/34 Mohammed Boumediene - INTTIC Technologies web 1


Réponses HTTP

Structure d’une réponse HTTP


Comme les requêtes, les réponses sont aussi basées sur du texte

25/34 Mohammed Boumediene - INTTIC Technologies web 1


Réponses HTTP

Structure d’une réponse HTTP


Comme les requêtes, les réponses sont aussi basées sur du texte
Les réponses HTTP sont constituées d’un ensemble de lignes :
Une ligne de statut : rappelle la version du protocole utilisé et l’état du traitement de la
requête qui est représenté par un code de réponse (Status-code), suivi d’une description.

25/34 Mohammed Boumediene - INTTIC Technologies web 1


Réponses HTTP

Structure d’une réponse HTTP


Comme les requêtes, les réponses sont aussi basées sur du texte
Les réponses HTTP sont constituées d’un ensemble de lignes :
Une ligne de statut : rappelle la version du protocole utilisé et l’état du traitement de la
requête qui est représenté par un code de réponse (Status-code), suivi d’une description.
Les en-têtes de la réponse : représentés par un ensemble de lignes facultatives. Ils donnent
une description supplémentaire sur la réponse et/ou le serveur. Chaque ligne est composée
d’un nom identifiant un en-tête, suivi de deux points ( : ) et de la valeur de l’en-tête.

25/34 Mohammed Boumediene - INTTIC Technologies web 1


Réponses HTTP

Structure d’une réponse HTTP


Comme les requêtes, les réponses sont aussi basées sur du texte
Les réponses HTTP sont constituées d’un ensemble de lignes :
Une ligne de statut : rappelle la version du protocole utilisé et l’état du traitement de la
requête qui est représenté par un code de réponse (Status-code), suivi d’une description.
Les en-têtes de la réponse : représentés par un ensemble de lignes facultatives. Ils donnent
une description supplémentaire sur la réponse et/ou le serveur. Chaque ligne est composée
d’un nom identifiant un en-tête, suivi de deux points ( : ) et de la valeur de l’en-tête.
Le corps de la réponse : contient le document web demandé.

25/34 Mohammed Boumediene - INTTIC Technologies web 1


Réponses HTTP

Codes d’état HTTP

Code d’état ou Statuts Code donne une information sur le déroulement du traitement de la requête

26/34 Mohammed Boumediene - INTTIC Technologies web 1


Réponses HTTP

Codes d’état HTTP

Code d’état ou Statuts Code donne une information sur le déroulement du traitement de la requête
Ces codes sont regroupés en 5 classes:
1xx : Information (pour notification)
2xx : Succès (la requête a été correctement reçue, interprétée, et exécutée)
3xx : Redirection (signale que la ressource demandée n’est pas à l’emplacement indiqué dans
la requête)
4xx : Erreur Client (la requête présente une erreur de forme et ne peut être satisfaite)
5xx : Erreur Serveur (la requête est valide, mais le serveur ne peut la satisfaire)

26/34 Mohammed Boumediene - INTTIC Technologies web 1


Réponses HTTP

Codes d’état HTTP


Table 2: Code d’état des réponses HTTP

Code Message Description


1xx Information
100 Continue peu utilisé, il indique la réception d’une requête valide.
101 Switching protocol signale qu’il faut changer de protocole ou de version.
2xx Succes
200 Ok requête satisfaite
201 Created signale la création ou la mise à jour d’un fichier suite à la réception d’une requête PUT.
204 No Content traitement de la requête réussi mais le corps de la réponse est vide.
3xx Redirection
301 Mover Permanently indique le déplacement définitif d’une ressource.
307 Temporary Redirect précise une redirection temporaire suite à un déplacement de la resource.
4xx Erreur due au client
400 Bad Request requête invalide.
401 Unauthorized le client doit s’identifier correctement pour avoir accès à la ressource.
403 Forbidden accès interdit à la ressource demandée par le client.
404 Not found impossible de trouver la ressource demandée.
5xx Erreur due au Serveur
500 Internal Server Error problème interne au serveur, serveur non disponible.
501 Not Implemented l’opération ou la commande mentionnée dans la requête n’est pas prise en charge par le serveur.
503 Service Unavaible le serveur n’est pas disponible à cause d’une surcharge.
505 HTTP Version Not Sup- le serveur ne supporte pas la version de HTTP utilisé par le client.
ported

27/34 Mohammed Boumediene - INTTIC Technologies web 1


En-têtes des réponse HTTP

Plan

1 Présentation de HTTP

2 Requêtes HTTP

3 En-têtes des requêtes HTTP

4 Réponses HTTP

5 En-têtes des réponse HTTP

6 Un peu de pratique

28/34 Mohammed Boumediene - INTTIC Technologies web 1


En-têtes des réponse HTTP

Content-Encoding

Content-Encoding spécifie quel encodage est utilisé par le serveur pour compresser le corps de sa réponse

Table 3: Encodage des messages HTTP

Identifiant Signification
compresse C’est le format de compression issu des systèmes Unix. Cet encodage est basé sur l’algorithme est Lempel-Zip-Welch.
deflate Ce format est basé sur l’algorithme Lempel-Zip et le codage de Huffman.
gzip Le format GNU zip est une évolution de deflate. gzip est basé sur le codage Lempel-Zip et un CRC de 32 bits.
identity Indique qu’aucune compression, ni modification n’a été apportée aux données.
br Le format Brotli est basé sur une variante moderne de Lempel-Zip et présente des performances intéressantes point de vue
temps de compression/decompression.

29/34 Mohammed Boumediene - INTTIC Technologies web 1


En-têtes des réponse HTTP

Content-Encoding

Content-Encoding spécifie quel encodage est utilisé par le serveur pour compresser le corps de sa réponse
Il est utile de préciser que le serveur choisi un des encodages listés dans l’en-tête Accept-Encoding de la
requête ⇒ un des encodages accepté par le navigateur client

Table 3: Encodage des messages HTTP

Identifiant Signification
compresse C’est le format de compression issu des systèmes Unix. Cet encodage est basé sur l’algorithme est Lempel-Zip-Welch.
deflate Ce format est basé sur l’algorithme Lempel-Zip et le codage de Huffman.
gzip Le format GNU zip est une évolution de deflate. gzip est basé sur le codage Lempel-Zip et un CRC de 32 bits.
identity Indique qu’aucune compression, ni modification n’a été apportée aux données.
br Le format Brotli est basé sur une variante moderne de Lempel-Zip et présente des performances intéressantes point de vue
temps de compression/decompression.

29/34 Mohammed Boumediene - INTTIC Technologies web 1


En-têtes des réponse HTTP

Content-Encoding

Content-Encoding spécifie quel encodage est utilisé par le serveur pour compresser le corps de sa réponse
Il est utile de préciser que le serveur choisi un des encodages listés dans l’en-tête Accept-Encoding de la
requête ⇒ un des encodages accepté par le navigateur client
Requête du client : Accept-Encoding: compress, gzip; q=0.9, identity; q=0.8

Table 3: Encodage des messages HTTP

Identifiant Signification
compresse C’est le format de compression issu des systèmes Unix. Cet encodage est basé sur l’algorithme est Lempel-Zip-Welch.
deflate Ce format est basé sur l’algorithme Lempel-Zip et le codage de Huffman.
gzip Le format GNU zip est une évolution de deflate. gzip est basé sur le codage Lempel-Zip et un CRC de 32 bits.
identity Indique qu’aucune compression, ni modification n’a été apportée aux données.
br Le format Brotli est basé sur une variante moderne de Lempel-Zip et présente des performances intéressantes point de vue
temps de compression/decompression.

29/34 Mohammed Boumediene - INTTIC Technologies web 1


En-têtes des réponse HTTP

Content-Encoding

Content-Encoding spécifie quel encodage est utilisé par le serveur pour compresser le corps de sa réponse
Il est utile de préciser que le serveur choisi un des encodages listés dans l’en-tête Accept-Encoding de la
requête ⇒ un des encodages accepté par le navigateur client
Requête du client : Accept-Encoding: compress, gzip; q=0.9, identity; q=0.8
Réponse du serveur : Content-Encoding: gzip

Table 3: Encodage des messages HTTP

Identifiant Signification
compresse C’est le format de compression issu des systèmes Unix. Cet encodage est basé sur l’algorithme est Lempel-Zip-Welch.
deflate Ce format est basé sur l’algorithme Lempel-Zip et le codage de Huffman.
gzip Le format GNU zip est une évolution de deflate. gzip est basé sur le codage Lempel-Zip et un CRC de 32 bits.
identity Indique qu’aucune compression, ni modification n’a été apportée aux données.
br Le format Brotli est basé sur une variante moderne de Lempel-Zip et présente des performances intéressantes point de vue
temps de compression/decompression.

29/34 Mohammed Boumediene - INTTIC Technologies web 1


En-têtes des réponse HTTP

Content-Language, Content-Length, Content-Type, Date, et Server

Content-Language identifie le langage naturel des données envoyées dans le corps de la réponse
⇒ Content-Language: en-us

30/34 Mohammed Boumediene - INTTIC Technologies web 1


En-têtes des réponse HTTP

Content-Language, Content-Length, Content-Type, Date, et Server

Content-Language identifie le langage naturel des données envoyées dans le corps de la réponse
⇒ Content-Language: en-us
Content-Length renseigne la taille du corps de la réponse en octets
⇒ Content-Length: 204

30/34 Mohammed Boumediene - INTTIC Technologies web 1


En-têtes des réponse HTTP

Content-Language, Content-Length, Content-Type, Date, et Server

Content-Language identifie le langage naturel des données envoyées dans le corps de la réponse
⇒ Content-Language: en-us
Content-Length renseigne la taille du corps de la réponse en octets
⇒ Content-Length: 204
Content-Type identifie le type MIME du corps de la réponse c.-a.d. la ressource
⇒ Content-Type : text/plain

30/34 Mohammed Boumediene - INTTIC Technologies web 1


En-têtes des réponse HTTP

Content-Language, Content-Length, Content-Type, Date, et Server

Content-Language identifie le langage naturel des données envoyées dans le corps de la réponse
⇒ Content-Language: en-us
Content-Length renseigne la taille du corps de la réponse en octets
⇒ Content-Length: 204
Content-Type identifie le type MIME du corps de la réponse c.-a.d. la ressource
⇒ Content-Type : text/plain
Date est obligatoire dans les réponses et facultatif dans les requêtes
⇒ Date indique la date (jours, mois, année, et heure) du début de transfert des données
⇒ date: Mon, 24 Feb 2020 [Link] GMT

30/34 Mohammed Boumediene - INTTIC Technologies web 1


En-têtes des réponse HTTP

Content-Language, Content-Length, Content-Type, Date, et Server

Content-Language identifie le langage naturel des données envoyées dans le corps de la réponse
⇒ Content-Language: en-us
Content-Length renseigne la taille du corps de la réponse en octets
⇒ Content-Length: 204
Content-Type identifie le type MIME du corps de la réponse c.-a.d. la ressource
⇒ Content-Type : text/plain
Date est obligatoire dans les réponses et facultatif dans les requêtes
⇒ Date indique la date (jours, mois, année, et heure) du début de transfert des données
⇒ date: Mon, 24 Feb 2020 [Link] GMT
Server est l’équivalent de l’en-tête User-Agent via lequel le serveur peut indiquer ses caractéristiques
⇒ Souvent cet en-tête est volontairement mal renseigné et cela pour des raisons de sécurité

30/34 Mohammed Boumediene - INTTIC Technologies web 1


En-têtes des réponse HTTP

Set-Cookie
Set-Cookie permet de joindre des cookies à une réponses

31/34 Mohammed Boumediene - INTTIC Technologies web 1


En-têtes des réponse HTTP

Set-Cookie
Set-Cookie permet de joindre des cookies à une réponses
Il indique le nom du cookie, sa valeur, sa date d’expiration, le domaine d’où il est envoyé ainsi que d’autres
information
set-cookie: <cookie-name>=<cookie-value>
set-cookie: <cookie-name>=<cookie-value>; expires=<date>
set-sookie: <cookie-name>=<cookie-value>;domain=<domain-value>

31/34 Mohammed Boumediene - INTTIC Technologies web 1


En-têtes des réponse HTTP

Set-Cookie
Set-Cookie permet de joindre des cookies à une réponses
Il indique le nom du cookie, sa valeur, sa date d’expiration, le domaine d’où il est envoyé ainsi que d’autres
information
set-cookie: <cookie-name>=<cookie-value>
set-cookie: <cookie-name>=<cookie-value>; expires=<date>
set-sookie: <cookie-name>=<cookie-value>;domain=<domain-value>
Set-Cookie: id=a6fwa; Expires=Wed, 17 May 2017 [Link] GMT; Domain=[Link]

31/34 Mohammed Boumediene - INTTIC Technologies web 1


Un peu de pratique

Plan

1 Présentation de HTTP

2 Requêtes HTTP

3 En-têtes des requêtes HTTP

4 Réponses HTTP

5 En-têtes des réponse HTTP

6 Un peu de pratique

32/34 Mohammed Boumediene - INTTIC Technologies web 1


Un peu de pratique

Un peu de pratique

Voir ce qu’il y a sous le capot (look under the hood)


⇒ Outils de développement de Google Chrome

33/34 Mohammed Boumediene - INTTIC Technologies web 1


Un peu de pratique

Merci pour votre attention! Des Questions?

34/34 Mohammed Boumediene - INTTIC Technologies web 1

Vous aimerez peut-être aussi