cours http

Upload: sar-itta

Post on 25-Feb-2018

218 views

Category:

Documents


0 download

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.