cours http
TRANSCRIPT
-
7/25/2019 Cours HTTP
1/41
HTTPHTTP(HyperText Transfer Protocol)
-
7/25/2019 Cours HTTP
2/41
2
Notions de base
web
Url
Encodage des urls
Types mime
-
7/25/2019 Cours HTTP
3/41
3
WEB
e web est bas! sur trois parties "
U# " l$adresse d$une ressource web
HT% "le contenu d$une ressource
HTTP " le protocole applicatif &ui permet de rapatrier laressource
-
7/25/2019 Cours HTTP
4/41
4
U#(Uniform #esource ocator)
Permet d'identifier une ressource sur le r!seau c'est*dire " une page Web
une image (seule ou utilis!e dans une page Web)
un programme
un fic+ier * t!l!c+arger,,,
syntaxe g!n!rale
: [ ? ] [ # ]
-sc+eme name. " le protocole r!seau utilis!, Exp " +ttp ftp usenet,,,
-+ierarc+ical part. " compos! de "
nom du domaine ou adresse ip " commence par (//)
0+emin " similaire au syst1me de fic+ier
2-&uery. " optionnelle sert * transmettre des donn!es
3-fragment. " optionnelle sert * cibler un fragment du document
Ex " +ttp"//fs,umbb,d4/%enumilieu/5lossaire%6,doc
-
7/25/2019 Cours HTTP
5/41
5
U# " &uery7string
0$est une c+aine contenant des donn!es * transmettre au ser8eur elle estcompos! d$une suite de paires " (c+amp 8aleur)
9yntaxe "
2c+amp:;8aleur:
-
7/25/2019 Cours HTTP
6/41
6
Encoding des U#
0ertains caract1res ne doi8ent pas figurer directement dans une U#ils sont soient interdits ou leur utilisation est d!?* pr!8ue dans uneU# ou dans une re&uete HTTP (caract1res r!ser8!s),
@ A $ ( ) " C < ; D / 2 3 sont descaract1res r!ser8!s,
En particulier le &uery7string doit Ftre con8erti pour satisfaire lescontraintes sur l$utilisation des caract1res, 0e processus est U#encoding
$U# encoding utilise les r1gles sui8antes "
es lettres (GI et a4) les nombres (JK) et les caract1res $,$$$$L$et $7$ ne sont pas encod!s,
e caract1re E9PG0E est remplac! par un $D$ ou $$M=J$$
e reste des caract1res est encod! par la 8aleur +exadecimal deson code G90 ou du code UTO lui correspondant
-
7/25/2019 Cours HTTP
7/41
7
Encoding des U#
Ex "
$C$est encod! $$MQJ$$
$F$est encod! $$M0RMGG$$
6ans l$exemple du formulaire pr!c!dent si l'utilisateursaisie (mot de passe ;. $$CFtre$$) le &uery7string auraapr1s encodage la 8aleur sui8ante "
2txtUser;samy
-
7/25/2019 Cours HTTP
8/41
8
6!finition " protocole
Un protocole de communication
est un langage&ui codifie un ensemble de r1gles&ue deux syst1mesdoi8ent respecter pour communi&uer
0+a&ue r1gle a pour but de r!aliser une ou plusieurs fonctionnalit!s
'ex!cution d'une r1gle n!cessite l'a?out d'informations aux donn!estransmises (m!tainformations)
permet aux mac+ines &ui l'utilisent de se S comprendre
Ex, " m!canisme re&uFter!ponse pour un protocole clientser8eur
Exemples de fonctionnalit!s
assurer la transmission 8ers une mac+ine identifi!e
assurer l'ind!pendance des communications 8is*8is du syst1med'exploitation ou de la plateforme
crypter les informations transmises
-
7/25/2019 Cours HTTP
9/41
9
HTTP" Principe g!n!ral
HTTP est un protocole applicatif client/ser8eur transactionnel bas! sur leprincipe re&uFte/r!ponse
0lients " principalement les na8igateurs web applications sp!cifi&ues(robot d$indexation aspirateur web,,) bibliot+1&ue de logiciels,,
9er8eurs " appel! ser8eur +ttp les plus connus " Gpac+e 9 N5N
HTTP est sans !tat " le client en8oie une re&uFte et le ser8eur r!pondind!pendamment des re&uFtes pr!c!dentes et sans conser8er la moindreinformation pour les re&uFtes * 8enir,
HTTP permet de 8!+iculer des ressources sur le World Wide Web
nitialement des fic+iers +tml
g!n!ralisation 8ers tous les types de fic+ier
Utilisation des type %%E pour distinguer entre les type de fic+ier !c+ang!
-
7/25/2019 Cours HTTP
10/41
10
Type %%E
Pour distinguer le type des ressources !c+ang!es HTTP s$appuie sur%%E " %ultipurpose nternet %ail Extensions,
G la base pr!8u pour l$!c+ange d$Emails %%E est adopt! pourl$!c+ange de documents webs, HTTP s$appuie sur %%E pour connaitrele type de document &u$il 8!+icule,
9yntaxe " -type./-soustype.
Ex "
text/+tml text/plain text/xml text/css ,,,
mage/?peg mage/tiff mage/gif mage/s8gDxml,,,
audio/mpeg,,
application/g4ip application/?son application/msword application/pdf
-
7/25/2019 Cours HTTP
11/41
11
HTTP"caract!risti&ues
HTTP est un protocole textuel bas! sur le codage G90(Gmerican 9tandard 0ode for nformation nterc+ange),
0$est un protocole applicatif (ni8eau V du mod1le 9),
l est d!fini par les sp!cifications HTTP diffus!es par leWR0 (World Wide Web 0onsortium) +ttp"//www,wR,org,
l s'appuie g!n!ralement sur une connexion transport T0P(Transmission 0ontrol Protocol) et utilise le port J pard!faut,
-
7/25/2019 Cours HTTP
12/41
12
HTTP" transaction
Une transaction HTTP se d!compose en &uatre p+ases "
-
7/25/2019 Cours HTTP
13/41
13
HTTP" Exemple
Exemple pour la transaction "+ttp"//www,monsite,d4/mesfic+iers/index,+tml
e na8igateur analyse l'U#
e na8igateur !tablit une connexion T0P sur le port J * l'adresse
P du nom de domaine www,monsite,d4 (r!solution 6N9) l en8oie alors la commande 5ET /mesfic+iers/index,+tml
e ser8eur www,monsite,d4 en8oie le fic+ier index,+tml
a connexion T0P est lib!r!e par le ser8eur, a transaction esttermin!e, e na8igateur interpr1te et affic+e la page
correspondante * index,+tml
9' il y trou8e des r!f!rences * des images sons etc X il 8ag!n!rer de nou8elles transactions pour c+acune d'entre elles etr!actualisera son affic+age au fur et * mesure,
-
7/25/2019 Cours HTTP
14/41
14
>ersions de HTTP
HTTP J,K L :KKJ (obsol1te et n$est plus pris en c+arge)
Permet seulement de t!l!c+arger des fic+ier texte stati&ue (communication dans unseul sens)
Pas de formulaire
Pas de statut de r!ponse
HTTP :,J L :KKY Pris en c+arge d$en8oi de donn!es 8ers le ser8eur
Pris en c+arge des type %%E
ntroduction des entFtes HTTP
HTTP:,: L :KKK
#e&uFtes partielles (demander une portion d$une ressource) 5estion d$+!bergement 8irtuel (plusieurs sites sur le mFme ser8eur web)
re&uFtes multiple dans une seule connexion
-
7/25/2019 Cours HTTP
15/41
15
%essage HTTP
Un message HTTP peut Ftre une re&uFte du client ou uner!ponse du ser8eur
9yntaxe d$un message (re&uFteZr!ponse)
Ligne d'intrductin
:
-
7/25/2019 Cours HTTP
16/41
16
#e&uFte HTTP (ligne d$introduction)
a ligne d$introduction d$une re&uFte HTTP a la forme sui8ante "
%!t+ode
ma?uscule obligatoire,
>aleurs possibles "5ET P9T HEG6 6EETE PTN9 T#G0E 0NNE0T
es plus utilis!es " 5ET et P9T
#essource
le c+emin de la ressource demand! dans la re&uFte
l commence par un /
Exemple "
/
/Lsamir/cours/+ttp/intro,pdf /mesdocuments/page:,+tml3ref
>ersion HTTP
HTTP/J,K (obsol1te) HTTP/:,J ou HTTP/:,:
-
7/25/2019 Cours HTTP
17/41
17
#e&uFte HTTP " les %!t+odes
5ET " demande pour obtenir des informations et des donn!esconcernant l'U#
P9T " en8oie de donn!es (contenu du formulaire 8ers leser8eur X), 0es donn!es sont situ!es dans le corps du
message HTTP, HEG6 " demande pour obtenir des informations concernant
l'U# (similaire * 5ET mais sans r!cup!ration des donn!es)
PUT " enregistrement du corps de la re&uFte * l'U# indi&u!
6EETE " suppression des donn!es d!sign!es par l'U# PTN9 " demande des options de communication disponibles
-
7/25/2019 Cours HTTP
18/41
18
Exemple re&uFte 5ET
5ET / HTTP/:,:Host" www,umbb,d4
Gcceptanguage" fr
#!cup!rer la page racine du sitewww,umbb,d4
le na8igateur indi&uant au ser8eur &u$il pr!f1re une 8ersion enfran[ais de la page s$il elle existe
9ans oublier la ligne 8ide s!parant les entFtes du corps dumessage (corps 8ide dans l$exemple)
http://www.umbb.dz/http://www.umbb.dz/ -
7/25/2019 Cours HTTP
19/41
19
Exemple re&uFte P9T
P9T /formrecours,p+p HTTP/:,:Host" www,umbb,d4
0ontentengt+" QK
0ontentType" application/xwwwformurlencoded
nom;salimPM=J8M0RMGKrifierM=JmaM=Jnote
n reprend l$exemple de la page \ "
e cli&ue sur le bouton submit d$un formulaire g!n1recette re&uFte
En8oi de donn!es 8ers la page /formrecous,p+p duwww,umbb,d4
le na8igateur doit indi&uer au ser8eur " la taille du corps du message au ser8eur
e type du contenu " urlencod!
http://www.umbb.dz/http://www.umbb.dz/ -
7/25/2019 Cours HTTP
20/41
20
#!ponse HTTP (ligne d$introduction)
a ligne d$introduction d$une r!ponse HTTP a la forme sui8ante "
9tatut code " code num!ri&ue repr!sentant la nature de la r!ponse (succ1s!c+ec,,)
0ommentaire statut " texte expli&uant le statut de la r!ponse
J\ classes de statut de r!ponse " : information
= succ1s
R redirection " a re&uFte n$a pas !t! trou8!e mais on sait ou elle est
Q erreur client
\ erreur ser8eur "re&uFte correcte mais non satisfaite (probl1meinterne au
ser8eur pas encore impl!ment!,,,)
-
7/25/2019 Cours HTTP
21/41
21
#!ponse HTTPcode statut classe " :
0ode9tatut
Texte 9tatut description HTTP>ersion
:JJ 0ontinue le client doit continuer * attendre lar!ponse et en8oyer des rappels de sare&uFte au ser8eur, e ser8eur signale
ainsi &u$il a compris la re&uFte et &u$ilne l$a pas encore re?et!e
:,:
:J: 9witc+ingprotocol
9i le client exprime des re&uFtes 8ersd$autres 8ersions de HTTP le ser8eurpeut r!pondre a8ec ce statute nou8eau protocole * utiliser estsp!cifi! par l$entFte Upgrade
:,:
-
7/25/2019 Cours HTTP
22/41
22
#!ponse HTTPcode statut classe " =
0ode 9tatut texte 6escription HTTP
=JJ ] :,J
=J: 0reated Peut Ftre utilis! par exemple dans le cadred$un re&uFte PUT pour indi&uer &ue ledocument a bien !t! upload!,
=JQ No 0ontent a re&uFte s$est bien d!roul!e mais lecorps de la r!ponse est 8ide, (exemplem!t+ode 6EETE)
=JY Partial 0ontent Utilis! dans le cadre de r!cup!ration partielde ressource
-
7/25/2019 Cours HTTP
23/41
23
#!ponse HTTPcode statut classe " R
0ode9tatut
Texte 9tatut description HTTP>ersion
RJJ %ultiple0+oices
9ignale au client &ue sa re&uFte admisplusieurs r!ponses (8oir n!gociation ducontenu)
RJ: Permanently#edirect
ndi&ue au client &ue la ressource demand!a c+ang! de place d!finiti8ement, anou8elle U# sera en8oy! dans un entFteS ocation
RJQ Not %odified Utilis! dans le cadre de re&uFtesconditionnelles (>oir gestion du cac+e a8ec
les re&uFtes conditionnelles)
RJV Temporary#edirect
ndi&ue au client &ue la ressource demand!a c+ang! de place d!finiti8ement, anou8elle U# sera en8oy! dans un entFteS ocation
-
7/25/2019 Cours HTTP
24/41
24
#!ponse HTTPcode statut classe " Q
0ode9tatut
Texte 9tatut 6escription HTTP>ersion
QJJ Bad #e&uest 0ode g!n!ri&ue il signifie &ue le ser8eurn$a pas compris la re&uFte du client
QJ: Unaut+ori4ed 0e code indi&ue &ue la re&uFte m1ne 8ersune ressource n!cessitant aut+entification
QJR Oorbidden la ressource demand!e 8ous est interdited$acc1s,
QJQ Not Oound la ressource demand!e n$a pas !t! trou8!sou8ent ils$agit d$une erreur dans U#
QJY NotGcceptable e ser8eur ne trou8e pas de ressources &uicorrespond aux caract!risti&ues d!critesdans l$entFte Gccept de la re&uFte
-
7/25/2019 Cours HTTP
25/41
25
Exemple #!ponse HTTP(:/=)
HTTP/:,: =JJ ]
6ate" 9at JK ct =J:J :Q"="J= 5%T
9er8er" Gpac+e
ast%odified" Tue J: No8 =J:R =J":"== 5%T
ETag" ^\::Q=bc:VQQKQVKbJV\b=K:b^
Gccept#anges" bytes
0ontentengt+" =KVYK
0ontentType" text/+tml
-@60T_PE +tml,,, (les =KVYK octets de la page web demand!e)
-
7/25/2019 Cours HTTP
26/41
26
Exemple #!ponse HTTP(=/=)
HTTP/:,: QJQ Not Oound
6ate" %on : No8 =J:R :Q"RR"J= 5%T
9er8er" Gpac+e
0ontentengt+" :JVR=
0ontentType" text/+tml c+arset;iso\K:
-@60T_PE +tml,,, (page personnalis!e informantl$utilisateur &ue la page demand!e n$est pas trou8!e)
-
7/25/2019 Cours HTTP
27/41
27
EntFtes HTTP concepts
es entFtes HTTP permettent au ser8eur comme au client de s'!c+anger desinformations suppl!mentaires
9yntaxe g!n!rale " nm1entit2 : "aleur1entit2
Gucune restriction sur la casse (ma?uscule ou minuscule)mais la con8ention est decommencer la :ere lettre en %a?uscule et le reste en minuscule
n peut donner plusieurs 8aleurs s!par!es par $$ exemple Gccept " text/+tml text/palin
es entFtes peu8ent appartenir * un des groupes sui8ants "
,nt!tes g2n2riques :informations concernant la transaction (re&uFte/r!ponse)
,nt!tes de requ!te :informations concernant la re&uFte
,nt!tes de r2pnse : informations concernant la r!ponse ,nt!tes de l'entit2 crps du message & : informations concernant le corps du
message
-
7/25/2019 Cours HTTP
28/41
28
EntFtes HTTP
es entFtes &u$on trou8ent dans une re&uFte HTTP sont "
,nt!tes g2n2riques3 ent!tes de requ!tes et ent!tesd'entit2
es entFtes &u$on trou8ent dans une r!ponse HTTP sont "
,nt!tes g2n2riques3 ent!tes de r2pnse et ent!tesd'entit2
-
7/25/2019 Cours HTTP
29/41
29
EntFtes HTTPentFtes g!n!ri&ues
Principalement l$entFte 6ate
6onne la date et l$+eure * la&uelle le message a !t! !mis,
$+eure est exprim! est en 5%T (+eure international)
Exemple
d$autres entFtes g!n!ri&ues " 0onnection 0ac+e0ontrol Pragma,,,
.ate: +n3 4 5" 6$*7 *6:$$:$$ 8+T
-
7/25/2019 Cours HTTP
30/41
30
EntFtes HTTPentFtes de re&uFtes
Host " repr!sente le nom du site, e seul entFte obligatoire * partir de HTTP/:,: Gccept" d!finit les types %ime accept!s
Gcceptc+arset " sp!cifie les types de ?eux de caract1res accept!s
Gcceptencoding " sp!cifie les types de transformation (compression) sur le messagesaccept!es
Gcceptlanguage " sp!cifie les langues accept!s Orom" donne l$email de l$utilisateur du client (na8igateur), N!cessite un accord,
#eferer" U# de l$ob?et * l$origine de la re&uFte (U# de la page dans la&uelle il y a le lien)
UserGgent" l$identifiant du na8igateur, 9ert pour adapter la
r!ponse au na8igateur
f%odified9ince fUnmodified9ince" permet de faire des 5ET conditionnel par rapport * laderni1re date de modification de la ressource
f%atc+fNone%atc+ "permet de faire des 5ET conditionnel par rapport * Etag,
-
7/25/2019 Cours HTTP
31/41
31
EntFtes HTTPentFtes de r!ponse
9er8er" le nom du ser8eur web sa 8ersion ainsi &ue descommentaires compl!mentaires
ocation "contient la 8!ritable U# de la ressource utiliserpour la redirection ou lors de d$une cr!ation de ressource
Etag" identificateur d$une 8ersion de la ressource utiliserdans la gestion du cac+e
#etryGfter " le ser8eur ind&iue au client &u$il r!essayerapr1s un nombre de secondes, Exemple #etryGfter":=J,
Gccept#anges " le ser8eur indi&ue au client s$il accepte lesre&uFtes partielles, >aleurs possibles" $$bytes$$
-
7/25/2019 Cours HTTP
32/41
32
EntFtes HTTPentFtes de l$entit!
0ontentType " identifie le type de l 'information (corps) types courants"
text/plain text/+tml image/gif image/?peg
0ontentengt+ " nombre d 'octets d'information dans le cas d$une re&uFte elle estobligatoire a8ec P9T inutile sinon
0ontentEncoding " utile si l'information est compress!e ou autrement cod!e
indi&ue la m!t+ode de codage (4ipg4ip deflate ,,,) 0ontentanguage " langue(s) utilis!e dans le corps du message
0ontentocation" U# effecti8e de la ressource elle est compl!mentaire * l$U#indi&u!e dans la re&uFte, Utilis! lors&ue l$U# de la re&uFte peut cibler plusieursressources (8oir n!gociation du contenu),
ast%odified"date de la derni1re modification de la ressource
Gllow " donne une lise des m!t+odes autoris! a8ec la ressource identifi! par l$U#de la re&uFte, 9ou8ent en r!ponse d$une re&uFte a8ec la m!t+ode PTN9
! i i d
-
7/25/2019 Cours HTTP
33/41
33
N!gociation du contenule principe
Une ressource peut Ftre disponible selon diff!rentes repr!sentations, diff!rents langages ou pour diff!rents types de m!dia ou une combinaison des deux,
a n!gociation de contenu (content n!gociation) est un m!canisme &ui permet deren8oyer (ou r!cup!rer selon le cas) le document &ui r!pondra au mieux aux attentesde l$utilisateur
e client sp!cifie les pr!f!rences de l$utilisateur pour une ressource donn!es,
Pr!f!rences 2;. ensemble d'entFtes
type de m!dia " Gccept
la langue " Gcceptanguage
type de compression de donn!es " Gcceptenconding
type de c+arset " Gccept0+arset
e ser8eurs utilise un algorit+me pour trou8er la meilleurs ressource &ui con8ient auxpr!f!rences indi&u!es
N! i i d
-
7/25/2019 Cours HTTP
34/41
34
N!gociation du contenule fonctionnement
0lient9er8eur
:,#e&uFte 5ET ressource D Pr!f!rences
9i : seule ressource r!pond auxpr!f!rences exprim!es "
9i plusieurs ressources r!pondent auxpr!f!rences a8ec le mFme degr! "
#!ponse =JJ ]D : seule ressource
#!ponse RJJ %ultiple 0+oiceD les U#s des ressources candidates
9i une la ressource existe mais elle necorrespond pas aux pr!f!rencesexprim!es "
#!ponse QJY Not GcceptableD les U#s des ressources candidates
alt
N!gociation du contenu
-
7/25/2019 Cours HTTP
35/41
35
N!gociation du contenu
>aleurs possibles pour mediatype
type/soustype" text/+tml image/?peg,,,
Type/A
A/A
Plusieurs 8aleurs peu8ent Ftre utilis! s!par!es par des 8irgules S
Gccept " text/+tml text/plain
on peut ra?outer un &ualificatif & pour pond!rer les pr!f!rences
& " est un nombre r!el compris entre J et : s!par! de la 8aleurs d$unepr!f!rence par un point8irgule S
a 8aleur par d!faut de & est :
Une 8aleur a8ec un &ualificatif &;J impli&ue &ue cette 8aleur n$est sou+aitable
N! ociation d conten
-
7/25/2019 Cours HTTP
36/41
36
N!gociation du contenuExemple de re&uFtes
Gccept" audio/A &;J,= audio/basic
8eut dire " S `e pr!f1re &ue la ressource soit de type audio/basicsinon en8oi n$importe &uel type d$audio
Gccept" text/plain &;J,\ text/+tml text/xml &;J, text/xc
8eut dire " S text/+tml et text/xc sont mes types de m!dia pr!f!r!smais s$ils n$existent pas en8ois le media text/xml si cette derni1ren$existe pas en8ois le media text/plain
Gcceptlanguage" ar fr&;J engb&;J,
8eut dire " S `e pr!f1re &ue la ressource soit en Grabe sinon c$esten aglais (5rande Bretagne) mais ?e ne 8eut pas &u$elle soit enfrancais
-
7/25/2019 Cours HTTP
37/41
37
Notion du 0ac+e
Une page HT% est sou8ent constitu!e d'informations (textes ouimages) ne subissant aucune modification pendant plusieurs ?ours,
l de8ient alors int!ressant de mettre en cac+e les ob?ets pour les&uelsnous a8ons d!?* effectu! une re&uFte,
6eux types de cac+e
)ache du na"igateur :permet au Browser de fournir imm!diatement lesob?ets pr!sents dans le cac+e sans a8oir * effectuer une re&uFte aupr1sdu ser8eur poss!dant l'ob?et,
)ache pr9y :permet au proxy de fournir aux clients les ob?ets pr!sentsdans son cac+e sans &u'il doi8e effectuer une re&uFte HTTP aupr1s du
ser8eur poss!dant l'ob?et,
0e cac+e est * la disposition de tous les clients utilisant le proxy
0ac+e et #e&uFtes conditionnelles
-
7/25/2019 Cours HTTP
38/41
38
0ac+e et #e&uFtes conditionnelles
Un 5et conditionnel peut Ftre effectu! en incluant l'entFte f%odified9ince dansune re&uFte 5et HTTP,
0et entFte permet de sp!cifier au ser8eur HTTP &ue l'on ne d!sire rece8oir lefic+ier demand! &ue sil a subit des modifications depuis la date indi&u!e dansl'entFte,
e statut RJQ est retourn! dans la r!ponse et le corps du message est 8ide si laressource n$a pas c+ang!
0lient9er8eur
HTTP/:,: RJQ Not %odified
5et news,+tmf%odified9ince" T+u : Gpr =J:R J"J\"R: 5%T
0ac+e et #e&uFtes conditionnelles
-
7/25/2019 Cours HTTP
39/41
39
0ac+e et #e&uFtes conditionnelles
:, e client demande une premi1re fois un document
5ET /test,p+p HTTP/:,:
=, e ser8eur fourni le documentHTTP/:,x =JJ ]
6ate" T+u J `ul =J:R :V"Q="=Y 5%T
ast%odified" T+u J `ul =J:R :V"RR"\Q 5%TEtag" ^=e:KJ=VfRQaYaeQJ^
0ac+e et #e&uFtes conditionnelles
-
7/25/2019 Cours HTTP
40/41
40
0ac+e et #e&uFtes conditionnelles
R, e client demande une deuxi1me fois le document et en8oie lesr!f!rences de la 8ersion dont il dispose d!?* (en cac+e)
5ET /test,p+p HTTP/:,:
f%odified9ince" T+u J `ul =J:R :V"RR"\Q 5%T
fNone%atc+" ^=e:KJ=VfRQaYaeQJ^
Q, e ser8eur retourne un a8is de nonmodification car le document n'a pas!t! modifi! depuis le dernier passage du client
HTTP/:,x RJQ Not %odified
6ate" T+u J `ul =J:R :V"QY"R: 5%T
Etag" ^=e:KJ=VfRQaYaeQJ^
0ac+e et #e&uFtes conditionnelles
-
7/25/2019 Cours HTTP
41/41
41
0ac+e et #e&uFtes conditionnelles
\, e client demande une troisi1me fois le document
5ET /test,p+p HTTP/:,:
f%odified9ince" T+u J `ul =J:R :V"RR"\Q 5%T
fNone%atc+" =e:KJ=VfRQaYaeQJ^
Y, e ser8eur fourni la nou8elle 8ersion du document car celuici a !t! modifi!
HTTP/:,x =JJ ]
6ate" T+u J `ul =J:R :V"Q"\Q 5%T
ast%odified" T+u J `ul =J:R :V"Q"\= 5%T
Etag" ^=e:KJ=bf=Vff:QKJJ^
-+tml.,,,-/+tml.